loading…
Search for a command to run...
loading…
Provides a comprehensive MCP interface to the AbraFlexi ERP REST API, enabling management of invoices, contacts, products, bank transactions, and other evidence
Provides a comprehensive MCP interface to the AbraFlexi ERP REST API, enabling management of invoices, contacts, products, bank transactions, and other evidence through natural language.
License: MIT Python 3.10+ PyPI version
A comprehensive Model Context Protocol (MCP) server for AbraFlexi integration using FastMCP and python-abraflexi. This server provides complete access to AbraFlexi REST API functionality through MCP-compatible tools.
invoice_issued_get - Retrieve issued invoices (faktura-vydana)invoice_issued_create - Create new issued invoicesinvoice_issued_update - Update existing issued invoicesinvoice_issued_delete - Remove issued invoicesinvoice_received_get - Retrieve received invoices (faktura-prijata)invoice_received_create - Create new received invoicescontact_get - Retrieve contacts and companies (adresar)contact_create - Create new contactscontact_update - Update existing contactscontact_delete - Remove contactsproduct_get - Retrieve products from price list (cenik)product_create - Create new productsproduct_update - Update existing productsproduct_delete - Remove productsbank_transaction_get - Retrieve bank transactions (banka)bank_transaction_create - Create new bank transactionsevidence_get - Get records from any evidenceevidence_create - Create record in any evidenceevidence_update - Update record in any evidenceevidence_delete - Delete record from any evidenceevidence_list - List all available evidencespip install abraflexi-mcp-server
Then run the server:
abraflexi-mcp
Download the self-contained AppImage from the latest release:
chmod +x AbraFlexi-MCP-Server-*-x86_64.AppImage
./AbraFlexi-MCP-Server-*-x86_64.AppImage
No Python or pip required. See AppImage section for details.
Clone the repository:
git clone https://github.com/VitexSoftware/abraflexi-mcp-server.git
cd abraflexi-mcp-server
Install with uv (recommended):
uv sync
uv run python scripts/start_server.py
Or with pip:
pip install -e .
abraflexi-mcp
A testing deployment is available at:
🌐 https://abraflexi.fastmcp.app/mcp
This cloud-hosted instance allows you to test and use the AbraFlexi MCP server without local installation. Configure your MCP client to connect to this endpoint with HTTP transport.
Note: This is a testing deployment. For production use, we recommend self-hosting using one of the installation methods above.
Create a .env file or set environment variables:
cp .env.example .env
# Edit .env with your AbraFlexi server details
ABRAFLEXI_URL - Your AbraFlexi server URL (e.g., https://demo.flexibee.eu:5434)ABRAFLEXI_COMPANY - Company identifier (e.g., demo_de)Method 1: Username/Password (Recommended)
ABRAFLEXI_LOGIN - Your AbraFlexi usernameABRAFLEXI_PASSWORD - Your AbraFlexi passwordMethod 2: Session ID
ABRAFLEXI_AUTHSESSID - Your AbraFlexi session IDREAD_ONLY - Set to true, 1, or yes to enable read-only mode (default: true)ABRAFLEXI_TIMEOUT - Request timeout in seconds (default: 300)ABRAFLEXI_MCP_TRANSPORT - Transport type: stdio (default) or streamable-httpHTTP Transport Configuration (only used when ABRAFLEXI_MCP_TRANSPORT=streamable-http):
ABRAFLEXI_MCP_HOST - Server host (default: 127.0.0.1)ABRAFLEXI_MCP_PORT - Server port (default: 8000)ABRAFLEXI_MCP_STATELESS_HTTP - Stateless mode (default: false)AUTH_TYPE - Must be set to no-auth for streamable-http transportWith startup script (recommended):
uv run python scripts/start_server.py
Direct execution:
uv run python -m abraflexi_mcp_server.server
The server supports two transport methods:
Standard input/output transport for MCP clients like Claude Desktop:
# Set in .env or environment
ABRAFLEXI_MCP_TRANSPORT=stdio
HTTP-based transport for web integrations:
# Set in .env or environment
ABRAFLEXI_MCP_TRANSPORT=streamable-http
ABRAFLEXI_MCP_HOST=127.0.0.1
ABRAFLEXI_MCP_PORT=8000
ABRAFLEXI_MCP_STATELESS_HTTP=false
AUTH_TYPE=no-auth
Run test suite:
uv run python scripts/test_server.py
When READ_ONLY=true (default), the server will only expose GET operations (retrieve data) and block all create, update, and delete operations. This is useful for:
To enable write operations, set READ_ONLY=false in your .env file.
Get all issued invoices:
invoice_issued_get(limit=10)
Get specific invoice by code:
invoice_issued_get(kod="INV-2024-001")
Create a new contact:
contact_create(
kod="CUSTOMER01",
nazev="Example Company s.r.o.",
email="[email protected]",
tel="+420123456789"
)
Get products:
product_get(nazev="Widget", limit=5)
Generic evidence query:
evidence_get(
evidence="faktura-vydana",
filter_expr="datVyst >= '2024-01-01'",
limit=20
)
This server is designed to work with MCP-compatible clients like Claude Desktop. See MCP_SETUP.md for detailed integration instructions.
The server can be run as an OCI container (Docker/Podman) — no Python installation needed on the host.
podman build -t abraflexi-mcp-server -f Containerfile .
The image defaults to streamable-http transport on port 8000.
With individual environment variables:
podman run --rm -p 8000:8000 \
-e ABRAFLEXI_URL=https://demo.flexibee.eu:5434 \
-e ABRAFLEXI_COMPANY=demo_de \
-e ABRAFLEXI_LOGIN=winstrom \
-e ABRAFLEXI_PASSWORD=winstrom \
abraflexi-mcp-server
With an env file:
podman run --rm -p 8000:8000 --env-file .env abraflexi-mcp-server
| Variable | Default |
|---|---|
ABRAFLEXI_MCP_TRANSPORT |
streamable-http |
ABRAFLEXI_MCP_HOST |
0.0.0.0 |
ABRAFLEXI_MCP_PORT |
8000 |
READ_ONLY |
true |
All other configuration variables can be passed as environment variables.
A self-contained, single-file Linux executable — no Python, pip, or any other dependency required on the host.
bash appimage/build-appimage.sh
The script downloads a portable CPython and appimagetool automatically. The resulting file is placed in build/appimage/:
build/appimage/AbraFlexi-MCP-Server-<version>-x86_64.AppImage
The AppImage automatically loads a .env file from the current working directory if one is present.
With a .env file (recommended):
cp .env.example .env
# edit .env with your credentials
./AbraFlexi-MCP-Server-*-x86_64.AppImage
With inline environment variables:
ABRAFLEXI_URL=https://demo.flexibee.eu:5434 \
ABRAFLEXI_COMPANY=demo_de \
ABRAFLEXI_LOGIN=winstrom \
ABRAFLEXI_PASSWORD=winstrom \
./AbraFlexi-MCP-Server-*-x86_64.AppImage
abraflexi-mcp-server/
├── abraflexi_mcp_server/
│ ├── __init__.py
│ └── server.py # Main server implementation
├── appimage/
│ ├── AppRun # AppImage entry point
│ ├── abraflexi-mcp-server.desktop
│ ├── abraflexi-mcp-server.svg
│ └── build-appimage.sh # AppImage build script
├── debian/ # Debian packaging
├── scripts/
│ ├── start_server.py # Startup script with validation
│ └── test_server.py # Test script
├── Containerfile # OCI container build
├── server.json # MCP Registry manifest
├── pyproject.toml # Python project configuration
├── setup.py # Legacy setuptools configuration
├── requirements.txt # Dependencies
├── .env.example # Environment configuration template
├── .env # Your configuration (not in git)
├── .gitignore # Git ignore patterns
└── README.md # This file
# Test server functionality
uv run python scripts/test_server.py
# Test with specific environment
ABRAFLEXI_URL=https://your-server.com uv run python scripts/test_server.py
The server includes comprehensive error handling:
.env file (never commit to git).env file has proper permissions (600)Connection Failed:
ABRAFLEXI_URL is correct and accessiblePermission Denied:
Tool Not Found:
uv syncSet environment variable for detailed logging:
export DEBUG=1
uv run python scripts/start_server.py
This project is licensed under the MIT License.
Vítězslav Dvořák
Made with ❤️ for the AbraFlexi and MCP communities
Выполни в терминале:
claude mcp add abraflexi-mcp-server -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.