feat: add semaphore-mcp Docker image (native HTTP, no proxy)
This commit is contained in:
parent
619f16292e
commit
d7e9695959
3 changed files with 70 additions and 0 deletions
|
|
@ -23,3 +23,14 @@ pipeline:
|
|||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-woodpecker:latest -f woodpecker/Dockerfile woodpecker/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-woodpecker:latest
|
||||
|
||||
build-semaphore:
|
||||
image: docker:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
secrets:
|
||||
- forgejo_registry_token
|
||||
commands:
|
||||
- docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN
|
||||
- docker build -t forgejo.corentic.eu/corentic/mcp-fleet-semaphore:latest -f semaphore/Dockerfile semaphore/
|
||||
- docker push forgejo.corentic.eu/corentic/mcp-fleet-semaphore:latest
|
||||
|
|
|
|||
11
semaphore/Dockerfile
Normal file
11
semaphore/Dockerfile
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
FROM python:3.12-slim
|
||||
|
||||
RUN pip install --no-cache-dir semaphore-mcp
|
||||
|
||||
ENV MCP_TRANSPORT=http \
|
||||
MCP_HOST=0.0.0.0 \
|
||||
MCP_PORT=8103
|
||||
|
||||
EXPOSE 8103
|
||||
|
||||
CMD ["semaphore-mcp"]
|
||||
48
semaphore/README.md
Normal file
48
semaphore/README.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# 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`
|
||||
Loading…
Add table
Reference in a new issue