# FreeCAD MCP server

> Control FreeCAD from an MCP client to create and edit 3D models, run Python scripts and run FEM analyses.

- Listing: https://mcp.tc/i/freecad
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: no API key needed
- Category: [Design, Websites & CMS](https://mcp.tc/c/design)
- Vendor: neka-nat
- Homepage: <https://github.com/neka-nat/freecad-mcp>
- Repository: <https://github.com/neka-nat/freecad-mcp>
- Package: pypi `freecad-mcp`

## About

Connects an MCP client such as Claude Desktop to FreeCAD. You can create and edit 3D models, inspect documents, run Python scripts inside FreeCAD and run FEM analyses.

It runs locally over stdio with uvx freecad-mcp. It has two parts: an addon (addon/FreeCADMCP in the repository) installed in FreeCAD, and the MCP server started by your client. The addon's RPC server must be running in FreeCAD, and connections use localhost by default. No API key or sign-in is needed.

## What it can do

- Create and edit models in FreeCAD
- Run Python scripts inside FreeCAD
- Inspect FreeCAD documents
- Run FEM analyses
- Connect to FreeCAD on localhost or a remote host

## Example prompts

- "Design a flange in FreeCAD with six bolt holes."
- "Inspect the open FreeCAD document and list its objects."
- "Run a Python script in FreeCAD to add a fillet to the selected edges."
- "Set up a FEM analysis for this bracket."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio freecad -- uvx freecad-mcp
```

2. Start Claude Code and type `/mcp`. **freecad** should show as connected.

Add `--scope user` to make it available in every project.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "freecad": {
      "command": "uvx",
      "args": [
        "freecad-mcp"
      ]
    }
  }
}
```

2. Save the file and restart Claude Desktop.

Needs uv (Python) on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=freecad&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJmcmVlY2FkLW1jcCJdfQ%3D%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "freecad": {
      "command": "uvx",
      "args": [
        "freecad-mcp"
      ]
    }
  }
}
```

Needs uv (Python) on your computer.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=freecad&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22freecad-mcp%22%5D%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"freecad","type":"stdio","command":"uvx","args":["freecad-mcp"]}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "freecad": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "freecad-mcp"
      ]
    }
  }
}
```

Needs uv (Python) on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "freecad": {
      "command": "uvx",
      "args": [
        "freecad-mcp"
      ]
    }
  }
}
```

2. Refresh the MCP server list in Cascade.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add freecad -- uvx freecad-mcp
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.freecad]
command = "uvx"
args = ["freecad-mcp"]
```

Needs uv (Python) on your computer.

### Gemini CLI

```bash
gemini mcp add freecad uvx freecad-mcp
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "freecad": {
      "command": "uvx",
      "args": [
        "freecad-mcp"
      ]
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs uv (Python) on your computer.

## Details

- Server version: 0.1.25
- Last checked: 2026-10-03
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/freecad (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
