Skip to main content
Glama
VitexSoftware

semaphore-mcp-server

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

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VitexSoftware/semaphore-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server