Skip to main content

Semaphore MCP Server

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

  1. Via Web UI (Semaphore 2.14+): Go to your user settings and create a token
  2. 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

Release files for semaphore-mcp-server 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for semaphore-mcp-server 0.1.1
File Size Uploaded
semaphore_mcp_server-0.1.1.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for semaphore-mcp-server 0.1.1
File Interpreter ABI Platform
semaphore_mcp_server-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 18.1 kB

Release files / semaphore_mcp_server-0.1.1.tar.gz

Download URL semaphore_mcp_server-0.1.1.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
aa90b36de018377e5f18bef01282605bb137c4d7fb4cf670501114b38ff9de19
BLAKE2b-256 checksum
How to use checksums
5c286ecaf5ae9bec01c10f26a7f061629db5ad56fc9d56331d671633d8408615
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / semaphore_mcp_server-0.1.1-py3-none-any.whl

Download URL semaphore_mcp_server-0.1.1-py3-none-any.whl
Size 8.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aea0cb9391f85e4c446c6129c419d02371aba067aa4a8f206fc53a0453602f0f
BLAKE2b-256 checksum
How to use checksums
5086a143584fe5bed6aa04c3f81b460d07d40550e0187b2577ea0322d48abe17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page