semaphore-mcp-server
A comprehensive MCP server for Semaphore UI integration
Ask AI about semaphore-mcp-server
Powered by Claude Β· Grounded in docs
I know everything about semaphore-mcp-server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Semaphore MCP Server
A Model Context Protocol (MCP) server for Semaphore UI - the modern open-source alternative to Ansible Tower/AWX.
This server enables AI assistants and MCP-compatible tools to interact with Semaphore UI for managing Ansible, Terraform, and other automation workflows.
Features
- Project Management β List, create, and delete projects
- Task Management β Launch, monitor, stop, and retrieve output of tasks
- Template Management β CRUD operations on job templates
- Inventory Management β Manage Ansible inventories
- Repository Management β Manage Git repositories
- Environment Management β Manage environment variable sets
- Key Store β List and manage SSH keys and credentials
- Schedule Management β Create and manage cron-based schedules
- User & Events β Get user info and project event logs
- Server Info β Check server health and version
Installation
pip install -e .
Or with the semaphore client from a local path:
pip install -e /path/to/python3-semaphore-client
pip install -e .
Configuration
Copy .env.example to .env and configure:
cp .env.example .env
Required environment variables:
| Variable | Description |
|---|---|
SEMAPHORE_URL | Base URL of your Semaphore UI instance (e.g., http://localhost:3000) |
SEMAPHORE_TOKEN | API Bearer token (create via Semaphore UI or API) |
Optional environment variables:
| Variable | Default | Description |
|---|---|---|
READ_ONLY | true | Set to false to enable write operations |
DEBUG | (unset) | Set to true for verbose logging |
Creating an API Token
- Via Web UI (Semaphore 2.14+): Go to your user settings and create a token
- Via API:
# Login curl -c /tmp/semaphore-cookie -XPOST \ -H 'Content-Type: application/json' \ -d '{"auth": "YOUR_LOGIN", "password": "YOUR_PASSWORD"}' \ http://localhost:3000/api/auth/login # Generate token curl -b /tmp/semaphore-cookie -XPOST \ http://localhost:3000/api/user/tokens
Usage
Running the MCP Server
semaphore-mcp
MCP Configuration
Add to your MCP client configuration (e.g., VS Code mcp.json):
{
"servers": {
"semaphore": {
"command": "semaphore-mcp",
"env": {
"SEMAPHORE_URL": "http://localhost:3000",
"SEMAPHORE_TOKEN": "your-token-here",
"READ_ONLY": "false"
}
}
}
}
Or for Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"semaphore": {
"command": "semaphore-mcp",
"env": {
"SEMAPHORE_URL": "http://localhost:3000",
"SEMAPHORE_TOKEN": "your-token-here"
}
}
}
}
Available Tools
| Tool | Description |
|---|---|
project_list | List all projects |
project_get | Get project details |
project_create | Create a new project |
project_delete | Delete a project |
task_list | List tasks in a project |
task_get | Get task details |
task_launch | Launch a task from a template |
task_stop | Stop a running task |
task_output | Get task output/log |
task_delete | Delete a task |
template_list | List templates in a project |
template_get | Get template details |
template_create | Create a new template |
template_delete | Delete a template |
inventory_list | List inventories in a project |
inventory_get | Get inventory details |
inventory_create | Create a new inventory |
inventory_delete | Delete an inventory |
repository_list | List repositories in a project |
repository_get | Get repository details |
repository_create | Create a new repository |
repository_delete | Delete a repository |
environment_list | List environments in a project |
environment_get | Get environment details |
environment_create | Create a new environment |
environment_delete | Delete an environment |
key_list | List keys/credentials in a project |
key_get | Get key details |
key_delete | Delete a key |
schedule_list | List schedules in a project |
schedule_create | Create a new schedule |
schedule_delete | Delete a schedule |
user_get_current | Get current user info |
user_tokens | List user API tokens |
event_list | List project events |
server_info | Get server version/info |
server_ping | Check server connectivity |
Dependencies
This project uses python3-semaphore-client β an OpenAPI-generated Python client library for the Semaphore UI API (v2.16.14).
Development
# Install in development mode
pip install -e ".[dev]"
# Run directly
python -m src.semaphore_mcp_server
License
MIT
