POHODA MCP Server
An MCP server that integrates with Stormware POHODA accounting software via the mServer XML API. It provides 48 tools to manage invoices, stock, orders, warehouse documents, and accounting reports through any MCP-compatible client.
README
POHODA MCP Server
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.
Requirements
- Node.js 20+
- 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
| Variable | Required | Description |
|---|---|---|
POHODA_URL |
Yes | mServer URL (default port: 444) |
POHODA_USERNAME |
Yes | POHODA user with XML rights |
POHODA_PASSWORD |
Yes | POHODA password |
POHODA_ICO |
Yes | Company IČO (accounting unit) |
POHODA_TIMEOUT |
No | Request timeout in ms (default: 120000) |
POHODA_MAX_RETRIES |
No | Max retries on timeout/503 (default: 2) |
POHODA_CHECK_DUPLICITY |
No | Enable duplicate import checks (default: false) |
Tools
System (3)
| Tool | Description |
|---|---|
pohoda_status |
Check mServer status (processing queue, idle/working) |
pohoda_company_info |
Get accounting unit info (company name, database, period) |
pohoda_download_file |
Download a file from POHODA's documents folder |
Address Book (4)
| Tool | Description |
|---|---|
pohoda_list_addresses |
Export contacts with filters (name, IČO, code, date) |
pohoda_create_address |
Create a new contact in address book |
pohoda_update_address |
Update an existing contact by ID |
pohoda_delete_address |
Delete a contact by ID |
Invoices (3)
| Tool | Description |
|---|---|
pohoda_list_invoices |
Export invoices — issued, received, advance, credit notes, receivables, commitments |
pohoda_create_invoice |
Create an invoice with line items, partner, symbols, VAT |
pohoda_delete_invoice |
Delete an invoice by ID |
Orders (3)
| Tool | Description |
|---|---|
pohoda_list_orders |
Export issued/received orders with filters |
pohoda_create_order |
Create an order with items and partner |
pohoda_delete_order |
Delete an order by ID |
Offers (2)
| Tool | Description |
|---|---|
pohoda_list_offers |
Export issued/received offers |
pohoda_create_offer |
Create an offer with items |
Enquiries (2)
| Tool | Description |
|---|---|
pohoda_list_enquiries |
Export issued/received enquiries |
pohoda_create_enquiry |
Create an enquiry with items |
Contracts (3)
| Tool | Description |
|---|---|
pohoda_list_contracts |
Export contracts with filters |
pohoda_create_contract |
Create a new contract |
pohoda_delete_contract |
Delete a contract by ID |
Bank Documents (2)
| Tool | Description |
|---|---|
pohoda_list_bank |
Export bank documents (receipts/expenses) |
pohoda_create_bank |
Create a bank document with items |
Cash Vouchers (2)
| Tool | Description |
|---|---|
pohoda_list_vouchers |
Export cash register vouchers |
pohoda_create_voucher |
Create a cash voucher (receipt/expense) |
Internal Documents (2)
| Tool | Description |
|---|---|
pohoda_list_internal_docs |
Export internal accounting documents |
pohoda_create_internal_doc |
Create an internal document |
Stock / Inventory (5)
| Tool | Description |
|---|---|
pohoda_list_stock |
Export stock items with filters (code, name, store) |
pohoda_create_stock |
Create a new stock item |
pohoda_update_stock |
Update a stock item by ID or code |
pohoda_delete_stock |
Delete a stock item |
pohoda_list_stores |
List all stores (warehouses) |
Warehouse Documents (8)
| Tool | Description |
|---|---|
pohoda_list_prijemky |
Export receiving documents (příjemky) |
pohoda_create_prijemka |
Create a receiving document |
pohoda_list_vydejky |
Export dispatch documents (výdejky) |
pohoda_create_vydejka |
Create a dispatch document |
pohoda_list_prodejky |
Export sales documents (prodejky) |
pohoda_create_prodejka |
Create a sales document |
pohoda_list_prevodky |
Export transfer documents (převodky) |
pohoda_create_prevodka |
Create a transfer document |
Production & Service (4)
| Tool | Description |
|---|---|
pohoda_list_vyroba |
Export production documents |
pohoda_create_vyroba |
Create a production document |
pohoda_list_service |
Export service records |
pohoda_create_service |
Create a service record |
Reports (4)
| Tool | Description |
|---|---|
pohoda_list_accountancy |
Export accounting journal entries |
pohoda_list_balance |
Export saldo/balance records |
pohoda_list_movements |
Export stock movement records |
pohoda_list_vat |
Export VAT classification records |
Settings (1)
| Tool | Description |
|---|---|
pohoda_list_settings |
Export settings (numerical series, bank accounts, cash registers, centres, activities, payment methods, stores, storage, categories, accounting units) |
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-AuthorizationBasic auth per POHODA mServer specificationSTW-Application: pohoda-mcpheader for audit trail in POHODA monitoringSTW-Check-Duplicityheader 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
Architecture
src/
index.ts Entry point, env validation, tool registration
client.ts HTTP client (STW-Auth, Windows-1250, gzip/deflate, retries)
xml/
builder.ts DataPack XML envelope builder (xmlbuilder2)
parser.ts ResponsePack parser (fast-xml-parser)
namespaces.ts 40+ POHODA XML namespace URIs
core/
types.ts ToolResult interface, ok/err helpers
shared.ts Date conversion, env helpers
filters.ts Filter builder for export requests
tools/
system.ts Status, company info, file download (3 tools)
addresses.ts Address book CRUD (4 tools)
invoices.ts All invoice types (3 tools)
orders.ts Issued/received orders (3 tools)
offers.ts Offers (2 tools)
enquiries.ts Enquiries (2 tools)
contracts.ts Contracts (3 tools)
bank.ts Bank documents (2 tools)
vouchers.ts Cash vouchers (2 tools)
internal_docs.ts Internal documents (2 tools)
stock.ts Stock/inventory CRUD (5 tools)
warehouse.ts Příjemky, výdejky, prodejky, převodky (8 tools)
production.ts Production and service records (4 tools)
reports.ts Accountancy, balance, movements, VAT (4 tools)
settings.ts Numerical series, bank accounts, centres... (1 tool)
POHODA mServer Setup
- Open POHODA → Settings → mServer
- Create a new mServer configuration
- Set the listening port (default: 444)
- Start the mServer
- 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
@modelcontextprotocol/sdk- Zod (schema validation)
- xmlbuilder2 (XML generation)
- fast-xml-parser (XML parsing)
- iconv-lite (Windows-1250 encoding)
- Native
fetch
API Reference
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。