# semaphore-mcp MCP server for interacting with SemaphoreUI (Ansible automation). Source: [cloin/semaphore-mcp](https://github.com/cloin/semaphore-mcp) ## Environment Variables | Variable | Required | Description | |----------|----------|-------------| | `SEMAPHORE_URL` | Yes | Base URL of the SemaphoreUI instance (e.g. `https://semaphore.corentic.eu`) | | `SEMAPHORE_API_TOKEN` | Yes | API token from SemaphoreUI user settings | | `MCP_PORT` | No | Port for the MCP HTTP server (default: 8000) | | `MCP_TRANSPORT` | No | Transport mode (`http` or `stdio`, default: `http`) | | `MCP_HOST` | No | Bind address (default: `0.0.0.0`) | ## Usage ```bash docker run -d \ --name semaphore-mcp \ -p 8103:8103 \ -e SEMAPHORE_URL=https://semaphore.corentic.eu \ -e SEMAPHORE_API_TOKEN=your_token_here \ forgejo.corentic.eu/corentic/mcp-fleet-semaphore:latest ``` This MCP uses HTTP transport natively (no mcp-proxy wrapper). Connect via: ``` http://host:8103/mcp ``` ## Tools - `create_project`, `get_project`, `update_project`, `delete_project`, `list_projects` - `create_template`, `get_template`, `update_template`, `delete_template`, `list_templates` - `create_inventory`, `get_inventory`, `update_inventory`, `delete_inventory`, `list_inventory` - `create_repository`, `get_repository`, `update_repository`, `delete_repository`, `list_repositories` - `create_environment`, `get_environment`, `update_environment`, `delete_environment`, `list_environments` - `create_access_key`, `get_access_key`, `update_access_key`, `delete_access_key`, `list_access_keys` - `create_schedule`, `get_schedule`, `update_schedule`, `delete_schedule`, `list_schedules` - `create_view`, `get_view`, `update_view`, `delete_view`, `list_views` - `run_task`, `get_task`, `get_task_raw_output`, `list_tasks` - `get_latest_failed_task`, `filter_tasks` - `list_events`, `get_last_events` - `stop_task`, `bulk_stop_tasks`, `stop_all_template_tasks` - `get_project_role`, `update_project_user`, `list_project_users`