Fix: rename workbench and prepare for release (#27)

* chore: rename workbench to FreecadRobustMCPBridge

* fix: stdio cleanup and bug fix for JSON RPC

* fix: update FreeCAD MCP bridge and tests

* test: Fix GUI Integration tests and other issues

* fix: unit tests in CI and a few other things

* docs: generate GitHub pages site and link to it.

* fix: General code improvements and DRY refactoring

* chore: General cleanup

* chore: small fixes

* docs: cleanup

* docs: fixes

* docs: small corrections

* docs: fix

* test: release check

* bump: workbench v0.6.0

* chore: bump macros to 0.6.0

* docs: Release improvements

* refactor: improve DRYness of code
This commit is contained in:
Sean P. Kane
2026-01-12 09:30:05 -08:00
committed by GitHub
parent 8c338f6da7
commit f14ab8177d
92 changed files with 2740 additions and 727 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# FreeCAD Robust MCP Server Comparison Analysis
This document analyzes existing FreeCAD MCP server implementations to identify best practices and improvements for our architecture.
This document analyzes existing FreeCAD Robust MCP server implementations to identify best practices and improvements for our architecture.
## Existing Implementations
+1 -1
View File
@@ -1,4 +1,4 @@
# FreeCAD MCP User Guide
# FreeCAD Robust MCP User Guide
This guide explains how to use AI assistants with FreeCAD via the MCP (Model Context Protocol) server to create and manipulate 3D CAD models.
+6 -6
View File
@@ -1,4 +1,4 @@
# FreeCAD MCP Server Architecture
# FreeCAD Robust MCP Server Architecture
## Executive Summary
@@ -10,11 +10,11 @@ This document describes the architecture for a Model Context Protocol (MCP) serv
<!--TOC-->
- [FreeCAD MCP Server Architecture](#freecad-mcp-server-architecture)
- [FreeCAD Robust MCP Server Architecture](#freecad-robust-mcp-server-architecture)
- [Executive Summary](#executive-summary)
- [Table of Contents](#table-of-contents)
- [Competitive Analysis](#competitive-analysis)
- [Existing FreeCAD MCP Servers](#existing-freecad-mcp-servers)
- [Existing FreeCAD Robust MCP Servers](#existing-freecad-robust-mcp-servers)
- [Our Differentiators](#our-differentiators)
- [Key Learnings Applied](#key-learnings-applied)
- [System Overview](#system-overview)
@@ -89,7 +89,7 @@ This document describes the architecture for a Model Context Protocol (MCP) serv
See [COMPARISON.md](../COMPARISON.md) for detailed analysis of existing implementations.
### Existing FreeCAD MCP Servers
### Existing FreeCAD Robust MCP Servers
| Project | Stars | Approach | Strengths |
| ----------------------------------------------------------------------------------- | ----- | -------------- | ------------------------------------------------- |
@@ -157,7 +157,7 @@ The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) is a standa
┌─────────────────────────────────────────────────────────────────────────┐
│ FreeCAD MCP Server │
│ FreeCAD Robust MCP Server │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Tools │ │ Resources │ │ Prompts │ │
│ │ - execute_py │ │ - documents │ │ - modeling │ │
@@ -293,7 +293,7 @@ freecad_mcp/
The main entry point using FastMCP from the official MCP Python SDK.
```python
"""FreeCAD MCP Server - Main entry point."""
"""FreeCAD Robust MCP Server - Main entry point."""
from mcp.server.fastmcp import FastMCP
+4 -4
View File
@@ -1,6 +1,6 @@
# Architecture
This document provides a technical overview of the FreeCAD MCP Server architecture.
This document provides a technical overview of the FreeCAD Robust MCP Server architecture.
For the full architecture document with design decisions and rationale, see [Detailed Architecture](architecture-detailed.md).
@@ -8,7 +8,7 @@ For the full architecture document with design decisions and rationale, see [Det
## Overview
The FreeCAD MCP Server follows a **Bridge with Adapter** pattern:
The FreeCAD Robust MCP Server follows a **Bridge with Adapter** pattern:
```text
┌─────────────────────────────────────────────────────────────────────────┐
@@ -125,10 +125,10 @@ class FreecadBridge(ABC):
The workbench addon runs inside FreeCAD:
```text
addon/FreecadRobustMCP/
addon/FreecadRobustMCPBridge/
├── Init.py # Module initialization
├── InitGui.py # GUI initialization (workbench)
├── FreecadRobustMCP.svg # Workbench icon
├── FreecadRobustMCPBridge.svg # Workbench icon
└── freecad_mcp_bridge/ # Bridge plugin
├── __init__.py
├── server.py # XML-RPC/JSON-RPC server
+1 -1
View File
@@ -88,7 +88,7 @@ freecad-robust-mcp-and-more/
│ ├── prompts/ # MCP prompt templates
│ └── server.py # Main server entry point
├── addon/ # FreeCAD workbench addon
│ └── FreecadRobustMCP/ # Workbench files
│ └── FreecadRobustMCPBridge/ # Workbench files
├── macros/ # Standalone FreeCAD macros
├── tests/ # Test suite
│ ├── unit/ # Unit tests
+2 -2
View File
@@ -338,7 +338,7 @@ Variables are defined in `docs/variables.yaml`:
```yaml
# docs/variables.yaml
project_name: FreeCAD Robust MCP Server
project_name: FreeCAD Robust MCP Suite
package_name: freecad-robust-mcp
xmlrpc_port: 9875
socket_port: 9876
@@ -355,7 +355,7 @@ Install with: `pip install {{@ package_name @}}`
| Variable | Value | Description |
| ---------------------- | ------------------------- | ------------------- |
| `project_name` | FreeCAD Robust MCP Server | Display name |
| `project_name` | FreeCAD Robust MCP Suite | Display name |
| `package_name` | freecad-robust-mcp | PyPI package name |
| `docker_image` | spkane/freecad-robust-mcp | Docker image |
| `xmlrpc_port` | 9875 | XML-RPC server port |
+1 -1
View File
@@ -244,7 +244,7 @@ just release::tag-workbench 1.0.0
**Files updated by `bump-workbench`:**
- `addon/FreecadRobustMCP/freecad_mcp_bridge/__init__.py` (`__version__`)
- `addon/FreecadRobustMCPBridge/freecad_mcp_bridge/__init__.py` (`__version__`)
- `package.xml` (workbench section: `<version>` and `<date>`)
**What happens automatically:**
+1 -1
View File
@@ -151,7 +151,7 @@ just freecad::run-gui
just freecad::run-headless
# Or run directly with FreeCADCmd
FreeCADCmd ~/.local/share/FreeCAD/Mod/FreecadRobustMCP/freecad_mcp_bridge/blocking_bridge.py
FreeCADCmd ~/.local/share/FreeCAD/Mod/FreecadRobustMCPBridge/freecad_mcp_bridge/blocking_bridge.py
```
---
+1 -1
View File
@@ -62,7 +62,7 @@ The Robust MCP Bridge Workbench runs inside FreeCAD and provides the connection
1. Open FreeCAD
1. Go to **Tools > Addon Manager**
1. Search for "FreeCAD MCP and More" or "Robust MCP Bridge"
1. Search for "FreeCAD Robust MCP Suite" or "Robust MCP Bridge"
1. Click **Install**
1. Restart FreeCAD
+1 -1
View File
@@ -27,7 +27,7 @@ Before starting, ensure you have:
```bash
# If installed via Addon Manager (Linux)
FreeCADCmd ~/.local/share/FreeCAD/Mod/FreecadRobustMCP/freecad_mcp_bridge/blocking_bridge.py
FreeCADCmd ~/.local/share/FreeCAD/Mod/FreecadRobustMCPBridge/freecad_mcp_bridge/blocking_bridge.py
# If working from source
just freecad::run-headless
+1 -1
View File
@@ -115,7 +115,7 @@ Embedded mode is tested in the CI pipeline with unit tests that mock FreeCAD. Ho
```mermaid
graph TD
A[Need FreeCAD MCP?] --> B{Platform?}
A[Need FreeCAD Robust MCP?] --> B{Platform?}
B -->|macOS/Windows| C[Use xmlrpc or socket]
B -->|Linux| D{Need GUI features?}
D -->|Yes| C
+8 -8
View File
@@ -58,7 +58,7 @@ See [MultiExport documentation](https://github.com/spkane/freecad-robust-mcp-and
### Via FreeCAD Addon Manager
When you install the "FreeCAD MCP and More" addon, the macros are installed automatically.
When you install the "FreeCAD Robust MCP Suite" addon, the macros are installed automatically.
### Manual Installation
@@ -155,13 +155,13 @@ create_macro_from_template(
**Available templates:**
| Template | Description |
| ----------- | --------------------------- |
| `basic` | Minimal macro with imports |
| `part` | Part workbench operations |
| `sketch` | Sketcher operations |
| `gui` | GUI/dialog template |
| `selection` | Selection handling template |
| Template | Description |
| ----------- | --------------------------------- |
| `basic` | Minimal macro with imports |
| `part` | Part workbench operations |
| `sketch` | Sketcher operations |
| `gui` | GUI/dialog template |
| `selection` | Selection handling template |
**Example prompt:**
+6 -6
View File
@@ -22,7 +22,7 @@ The workbench provides:
1. Open FreeCAD
1. Go to **Tools > Addon Manager**
1. Search for "FreeCAD MCP and More" or "Robust MCP Bridge"
1. Search for "FreeCAD Robust MCP Suite" or "Robust MCP Bridge"
1. Click **Install**
1. Restart FreeCAD
@@ -30,9 +30,9 @@ The workbench provides:
Download from [GitHub Releases](https://github.com/spkane/freecad-robust-mcp-and-more/releases) and extract to your FreeCAD Mod directory:
- **Linux:** `~/.local/share/FreeCAD/Mod/FreecadRobustMCP/`
- **macOS:** `~/Library/Application Support/FreeCAD/Mod/FreecadRobustMCP/`
- **Windows:** `%APPDATA%\FreeCAD\Mod\FreecadRobustMCP\`
- **Linux:** `~/.local/share/FreeCAD/Mod/FreecadRobustMCPBridge/`
- **macOS:** `~/Library/Application Support/FreeCAD/Mod/FreecadRobustMCPBridge/`
- **Windows:** `%APPDATA%\FreeCAD\Mod\FreecadRobustMCPBridge\`
---
@@ -75,14 +75,14 @@ The workbench includes a blocking bridge script for running in server mode (keep
**Linux:**
```bash
freecadcmd ~/.local/share/FreeCAD/Mod/FreecadRobustMCP/freecad_mcp_bridge/blocking_bridge.py
freecadcmd ~/.local/share/FreeCAD/Mod/FreecadRobustMCPBridge/freecad_mcp_bridge/blocking_bridge.py
```
**macOS:**
```bash
/Applications/FreeCAD.app/Contents/Resources/bin/freecadcmd \
~/Library/Application\ Support/FreeCAD/Mod/FreecadRobustMCP/freecad_mcp_bridge/blocking_bridge.py
~/Library/Application\ Support/FreeCAD/Mod/FreecadRobustMCPBridge/freecad_mcp_bridge/blocking_bridge.py
```
**Using just commands (from source):**
+15 -10
View File
@@ -1,8 +1,8 @@
# FreeCAD Robust MCP Server
# FreeCAD Robust MCP Suite
Welcome to the FreeCAD Robust MCP Server documentation.
Welcome to the FreeCAD Robust MCP Suite documentation.
This project provides an [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that enables integration between AI assistants (Claude, GPT, and other MCP-compatible tools) and [FreeCAD](https://www.freecadweb.org/), allowing AI-assisted development and debugging of 3D models, macros, and workbenches.
This project provides an [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server, FreeCAD workbench, and standalone macros that enable integration between AI assistants (Claude, GPT, and other MCP-compatible tools) and [FreeCAD](https://www.freecadweb.org/), allowing AI-assisted development and debugging of 3D models, macros, and workbenches.
---
@@ -23,9 +23,10 @@ This project provides an [MCP (Model Context Protocol)](https://modelcontextprot
pip install freecad-robust-mcp
# Install the workbench via FreeCAD Addon Manager
# (search for "FreeCAD MCP and More")
# (search for "Robust MCP" - the package is "FreeCAD Robust MCP Suite")
# Start FreeCAD and click "Start Bridge" in the Robust MCP Bridge workbench
# Start FreeCAD and switch to the "Robust MCP Bridge" workbench
# Click "Start Bridge" in the toolbar
# Configure your MCP client and start building!
```
@@ -79,13 +80,17 @@ This project includes standalone FreeCAD macros:
| [Tools Reference](MCP_TOOLS_REFERENCE.md) | Complete API reference for all 82+ MCP tools |
| [API Reference](api/server.md) | Python API documentation |
| [Development](development/contributing.md) | Contributing, architecture, and development setup |
| [Comparison](COMPARISON.md) | Analysis of other FreeCAD MCP implementations |
| [Comparison](COMPARISON.md) | Compare with other FreeCAD MCP implementations |
---
## Links
- [GitHub Repository](https://github.com/spkane/freecad-robust-mcp-and-more)
- [PyPI Package](https://pypi.org/project/freecad-robust-mcp/)
- [Docker Hub](https://hub.docker.com/r/spkane/freecad-robust-mcp)
- [Issue Tracker](https://github.com/spkane/freecad-robust-mcp-and-more/issues)
- [GitHub Repository](https://github.com/spkane/freecad-robust-mcp-and-more) - Source code and issue tracker
- [PyPI Package](https://pypi.org/project/freecad-robust-mcp/) - Python package for pip installation
- [Docker Hub](https://hub.docker.com/r/spkane/freecad-robust-mcp) - Pre-built Docker images
---
!!! tip "Share This Documentation"
Direct link: **[https://spkane.github.io/freecad-robust-mcp-and-more/](https://spkane.github.io/freecad-robust-mcp-and-more/)**
+1 -1
View File
@@ -2,7 +2,7 @@
# Use in docs with {{@ variable_name @}} (custom delimiters to avoid Python dict conflicts)
# Project info
project_name: FreeCAD Robust MCP Server
project_name: FreeCAD Robust MCP Suite
package_name: freecad-robust-mcp
docker_image: spkane/freecad-robust-mcp