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:
+1
-1
@@ -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
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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:**
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:**
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user