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.
- 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
pip install multiflexi-mcp-servergit clone https://github.com/VitexSoftware/multiflexi-mcp-server.git
cd multiflexi-mcp-server
pip install -e .The server can be configured using environment variables:
MULTIFLEXI_HOST: MultiFlexi API host URL (default: demo server)
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)
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"multiflexi-mcp-serverAdd 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"
}
}
}
}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)
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).
get_app- Get application by IDget_apps- List all applications (via resources)
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)
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
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
list_credentials/get_credential- List/get credentialslist_credential_types/get_credential_type- List/get credential types
list_topics/get_topic- List/get topics
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
list_event_rules/get_event_rule- List/get event rulesset_event_rule- Create or update an event ruledelete_event_rule- Delete an event rule
list_tasks- List tasks, optionally filtered bystate/runtemplate_idget_task- Get a task by ID, including its job attempt history
get_runtemplate- Get run template by IDupdate_runtemplate- Update run templateget_runtemplates- List all templates (via resources)
request_data_export- Request data exportget_export_status- Check export status
set_company_by_id,update_credentials,update_credential_type, andupdate_topichave norequestBodydefined inopenapi-schema.yamlyet, so Company/Credential/CredentialType/Topic writes are not exposed as MCP tools — only list/get. Fixing this requires a schema change inmultiflexi-api(deciding what fields each write should accept), tracked separately.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.
{
"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"
}
}- Python 3.9+
- pip
- virtualenv (recommended)
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]"pytest# Format code
black src/ tests/
# Sort imports
isort src/ tests/
# Type checking
mypy src/
# Linting
ruff src/ tests/This server integrates with the MultiFlexi API. For detailed API documentation, refer to:
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"
}
}- 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
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Run the test suite
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Documentation: GitHub Wiki
- Email: info@vitexsoftware.cz
- Basic MCP server implementation
- MultiFlexi API integration
- Application, job, company, user, and template management
- GDPR compliance features
- Comprehensive error handling
- Environment-based configuration