feat: migrate freecad-mcp to GitHub fork install and refactor deployments
- Switch freecad-mcp installation from PyPI to Heluca GitHub fork, using a configurable git ref (freecad_mcp_git_ref) instead of pinned PyPI version - Retarget freecad-mcp deployment from Caliban to Larissa, update port from 22032 to 22063, and change service user to freecad-mcp - Add git to apt dependencies for pip git+https installs - Make deployment summary use inventory_hostname instead of hardcoded host - Refactor kernos deploy to target all ubuntu hosts with service-based filtering via `services` host_var, replacing static host group
This commit is contained in:
@@ -2,22 +2,21 @@
|
||||
# =============================================================================
|
||||
# FreeCAD Robust MCP Server — Ansible Deployment Playbook
|
||||
# =============================================================================
|
||||
# Deploys the FreeCAD MCP Server to Caliban as a systemd service.
|
||||
# Deploys the FreeCAD MCP Server to Larissa as a systemd service.
|
||||
#
|
||||
# The server runs in xmlrpc mode with HTTP transport, exposing the MCP
|
||||
# protocol over streamable-http for consumption by MCP Switchboard on Oberon.
|
||||
# protocol over streamable-http for consumption by MCP Switchboard on Triton.
|
||||
#
|
||||
# Pattern: venv + pip install from PyPI (matches Kernos deployment)
|
||||
# Pattern: venv + pip install from GitHub fork (fastmcp>=3.2.0)
|
||||
#
|
||||
# Usage:
|
||||
# ansible-playbook freecad_mcp/deploy.yml
|
||||
#
|
||||
# Required host_vars (caliban.incus.yml):
|
||||
# freecad_mcp_user: harper
|
||||
# freecad_mcp_group: harper
|
||||
# Required host_vars:
|
||||
# freecad_mcp_user: freecad-mcp
|
||||
# freecad_mcp_group: freecad-mcp
|
||||
# freecad_mcp_directory: /srv/freecad-mcp
|
||||
# freecad_mcp_port: 22032
|
||||
# freecad_mcp_version: "0.5.0" # PyPI version to pin
|
||||
# freecad_mcp_port: 22063
|
||||
#
|
||||
# Optional host_vars:
|
||||
# freecad_mcp_host: "0.0.0.0"
|
||||
@@ -95,7 +94,7 @@
|
||||
- name: Ensure Python 3, venv, dev headers, and FreeCAD are installed
|
||||
become: true
|
||||
ansible.builtin.apt:
|
||||
name: [python3, python3-venv, python3-dev, freecad]
|
||||
name: [python3, python3-venv, python3-dev, git, freecad]
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
@@ -119,12 +118,12 @@
|
||||
state: latest
|
||||
virtualenv: "{{ freecad_mcp_directory }}/.venv"
|
||||
|
||||
- name: Install freecad-robust-mcp from PyPI
|
||||
- name: Install freecad-robust-mcp from Heluca fork
|
||||
become: true
|
||||
become_user: "{{ freecad_mcp_user }}"
|
||||
ansible.builtin.pip:
|
||||
name:
|
||||
- "freecad-robust-mcp=={{ freecad_mcp_version }}"
|
||||
- "freecad-robust-mcp @ git+https://github.com/heluca/freecad-addon-robust-mcp-server.git@{{ freecad_mcp_git_ref }}"
|
||||
virtualenv: "{{ freecad_mcp_directory }}/.venv"
|
||||
virtualenv_command: python3 -m venv
|
||||
notify: restart freecad-mcp
|
||||
@@ -205,7 +204,7 @@
|
||||
ansible.builtin.debug:
|
||||
msg: >-
|
||||
FreeCAD MCP Server deployed successfully on
|
||||
caliban.incus:{{ freecad_mcp_port }}
|
||||
{{ inventory_hostname }}:{{ freecad_mcp_port }}
|
||||
|
||||
# =========================================================================
|
||||
# Handlers
|
||||
|
||||
Reference in New Issue
Block a user