MultiFlexi MCP Server
MCP (Model Context Protocol) Server for MultiFlexi API integration. This server provides tools and resources for interacting with MultiFlexi applications, jobs, companies, users, and run templates.
Features
- Applications: List, retrieve, and manage MultiFlexi applications
- Jobs: Create, retrieve, and monitor job execution
- Companies: Manage company data and configurations
- Users: Access user information and profiles
- Run Templates: Create and update execution templates
- GDPR Compliance: Request and manage data exports
- Authentication: Support for basic authentication
- Error Handling: Comprehensive error handling and logging
Installation
Using pip
pip install multiflexi-mcp-server
From source
git clone https://github.com/VitexSoftware/multiflexi-mcp-server.git
cd multiflexi-mcp-server
pip install -e .
Configuration
The server can be configured using environment variables:
Required Configuration
MULTIFLEXI_HOST: MultiFlexi API host URL (default: demo server)
Optional Configuration
MULTIFLEXI_USERNAME: Username for basic authenticationMULTIFLEXI_PASSWORD: Password for basic authenticationMULTIFLEXI_VERIFY_SSL: Whether to verify SSL certificates (default: true)MULTIFLEXI_TIMEOUT: Request timeout in seconds (default: 30)MULTIFLEXI_MAX_RETRIES: Maximum number of retries (default: 3)MULTIFLEXI_DEBUG: Enable debug logging (default: false)
Example Configuration
export MULTIFLEXI_HOST="https://your-multiflexi-instance.com"
export MULTIFLEXI_USERNAME="your-username"
export MULTIFLEXI_PASSWORD="your-password"
export MULTIFLEXI_VERIFY_SSL="true"
export MULTIFLEXI_DEBUG="false"
Usage
Running the Server
multiflexi-mcp-server
Claude Desktop Integration
Add the following to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"multiflexi": {
"command": "multiflexi-mcp-server",
"env": {
"MULTIFLEXI_HOST": "https://your-multiflexi-instance.com",
"MULTIFLEXI_USERNAME": "your-username",
"MULTIFLEXI_PASSWORD": "your-password"
}
}
}
}
Using with MCP Clients
The server provides the following resources:
multiflexi://apps- List of applicationsmultiflexi://jobs- List of jobsmultiflexi://companies- List of companiesmultiflexi://users- List of usersmultiflexi://runtemplates- List of run templatesmultiflexi://credentials- List of credentialsmultiflexi://credential_types- List of credential typesmultiflexi://topics- List of topics (capability contracts)multiflexi://eventsources- List of event sourcesmultiflexi://eventrules- List of event rulesmultiflexi://tasks- List of tasks (per-window fulfilment obligations)
Available Tools
Requires a multiflexi-client build generated from the current
openapi-schema.yaml (not yet released to PyPI as of this writing — see
"Known limitations" below).
Application Management
get_app- Get application by IDget_apps- List all applications (via resources)
Job Management
get_job- Get job by IDcreate_job- Schedule a job from a RunTemplate (runtemplate_id,scheduled,executor,env)get_job_status- Get job execution statusget_jobs- List all jobs (via resources)
Company Management
get_company- Get company by IDlist_companies- List all companieslist_company_users- List users assigned to a companyassign_user_to_company- Assign a user to a company with an access roleunassign_user_from_company- Remove a user's assignment from a company
User Management
get_user- Get user by IDlist_users- List all usersget_user_roles- Get RBAC roles assigned to a userset_user_roles- Assign RBAC roles to a user
Credential & Credential Type Management
list_credentials/get_credential/update_credential- List/get/update credentialslist_credential_types/get_credential_type/update_credential_type- List/get/update credential types
Topic Management
list_topics/get_topic/update_topic- List/get/update topics
Event Source Management
list_event_sources/get_event_source- List/get event sourcesset_event_source- Create or update an event sourcedelete_event_source- Delete an event sourcetest_event_source_connection- Live-test connectivity/credentials
Event Rule Management
list_event_rules/get_event_rule- List/get event rulesset_event_rule- Create or update an event ruledelete_event_rule- Delete an event rule
Task (read-only — tasks are system-materialized per RunTemplate window)
list_tasks- List tasks, optionally filtered bystate/runtemplate_idget_task- Get a task by ID, including its job attempt history
Run Template Management
get_runtemplate- Get run template by IDupdate_runtemplate- Update run templateget_runtemplates- List all templates (via resources)
GDPR Compliance
request_data_export- Request data exportget_export_status- Check export status
Known limitations
set_company_by_idstill has norequestBodydefined inopenapi-schema.yaml, so Company writes are not exposed as an MCP tool — only list/get.update_credentials,update_credential_type, andupdate_topicnow haverequestBodyschemas and are exposed asupdate_credential,update_credential_type, andupdate_topic.get_credential's schema declares a requiredtokenparameter alongsidecredential_idthat looks like a schema-authoring artifact on a session-authenticated endpoint; it's exposed but defaults to an empty string.
Example Tool Usage
{
"tool": "get_app",
"arguments": {
"app_id": 123,
"format": "json"
}
}
{
"tool": "create_job",
"arguments": {
"runtemplate_id": 15,
"scheduled": "now",
"env": {"DOCID": "FV-2025-0042"}
}
}
{
"tool": "request_data_export",
"arguments": {
"export_type": "personal_data",
"format": "json"
}
}
Development
Prerequisites
- Python 3.9+
- pip
- virtualenv (recommended)
Setup Development Environment
git clone https://github.com/VitexSoftware/multiflexi-mcp-server.git
cd multiflexi-mcp-server
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -e ".[dev]"
Running Tests
pytest
Code Formatting
# Format code
black src/ tests/
# Sort imports
isort src/ tests/
# Type checking
mypy src/
# Linting
ruff src/ tests/
API Documentation
This server integrates with the MultiFlexi API. For detailed API documentation, refer to:
Error Handling
The server provides comprehensive error handling:
- API Errors: Formatted with status codes and detailed messages
- Authentication Errors: Clear authentication failure messages
- Validation Errors: Input validation with descriptive errors
- Network Errors: Timeout and connection error handling
All errors are returned in a consistent JSON format:
{
"error": true,
"operation": "get_app",
"status": 404,
"reason": "Not Found",
"details": {
"message": "Application with ID 123 not found"
}
}
Security Considerations
- Authentication: Use environment variables for credentials
- SSL Verification: Enable SSL verification in production
- Network Security: Ensure secure network connections
- Data Privacy: Handle GDPR exports with appropriate security
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Run the test suite
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- Issues: GitHub Issues
- Documentation: GitHub Wiki
- Email: info@vitexsoftware.cz
Changelog
See CHANGELOG.md for the full history. Highlights:
v0.2.0
- Fixed slow cold-start import time:
multiflexi_client(the generated API SDK) is now imported lazily on first use instead of at module load, cutting process startup from ~5s to well under 1s -- this matters because the server is spawned fresh per connection by consumers with a bounded handshake timeout. - Added
update_credential,update_credential_type, andupdate_topictools - Fixed several API method/response mismatches against
multiflexi-client
v0.1.0 (Initial Release)
- Basic MCP server implementation
- MultiFlexi API integration
- Application, job, company, user, and template management
- GDPR compliance features
- Comprehensive error handling
- Environment-based configuration
Metadata
Release files for multiflexi-mcp-server 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| multiflexi_mcp_server-0.2.0.tar.gz | 28.3 kB | Without provenance | Details for multiflexi_mcp_server-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| multiflexi_mcp_server-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for multiflexi_mcp_server-0.2.0-py3-none-any.whl |
Total release size: 47.0 kB
Release files / multiflexi_mcp_server-0.2.0.tar.gz
| Download URL | multiflexi_mcp_server-0.2.0.tar.gz |
|---|---|
| Size | 28.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
85a737403098413c4baabf78234da8f9db0c64f2c64498df245f4a4e4f53dbe2
|
|
BLAKE2b-256 checksum How to use checksums |
1f548a079ff6e73a3f41e34d1ab1e18f0035b9e2b212e75f4eb2b46b000cb694
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / multiflexi_mcp_server-0.2.0-py3-none-any.whl
| Download URL | multiflexi_mcp_server-0.2.0-py3-none-any.whl |
|---|---|
| Size | 18.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
739f5b091390150bc100ae0b3fe69c1df8904000f41948a86400a85d530662c1
|
|
BLAKE2b-256 checksum How to use checksums |
885663bf0ca5418f5f183069ed70bbc8ee956717620fe019f6a01c665186d9d5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Security for multiflexi-mcp-server 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.