
Speckle
STDIOMCP server for Speckle integration, enabling AEC tool data access and collaboration.
MCP server for Speckle integration, enabling AEC tool data access and collaboration.
A Model Context Protocol (MCP) server for interacting with Speckle, the collaborative data hub that connects with your AEC tools.
This MCP server acts as a bridge between Speckle's API and client applications and exposes a set of tools that allow users to:
Clone this repository:
git clone https://github.com/bimgeek/speckle-mcp.git cd speckle-mcp
Ensure you have Python 3.13 installed:
python --version # Should show Python 3.13.x
Install dependencies using uv:
uv pip install -r requirements.txt
The server requires the following environment variables:
SPECKLE_TOKEN
: Your Speckle personal access token (required)SPECKLE_SERVER
: The Speckle server URL (defaults to https://app.speckle.systems)To use this server with Claude, you need to update your MCP configuration file. The configuration file is typically located at:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
Add or update the "speckle" entry in the mcpServers
section:
{ "mcpServers": { "speckle": { "command": "uv", "args": [ "--directory", "/path/to/speckle-mcp", "run", "speckle_server.py" ], "env": { "SPECKLE_TOKEN": "YOUR_SPECKLE_API_TOKEN_HERE", "SPECKLE_SERVER": "https://app.speckle.systems" } } } }
Replace /path/to/speckle-mcp
with the actual path to the directory containing the speckle_mcp
package.
list_projects
: Lists all accessible Speckle projects
limit
(optional): Maximum number of projects to retrieve (default: 20)get_project_details
: Retrieves detailed information about a specific project
project_id
: The ID of the Speckle project to retrievelimit
(optional): Maximum number of models to retrieve (default: 20)search_projects
: Searches for projects by name or description
query
: The search term to look for in project names and descriptionsget_model_versions
: Lists all versions for a specific model
project_id
: The ID of the Speckle projectmodel_id
: The ID of the model to retrieve versions forlimit
(optional): Maximum number of versions to retrieve (default: 20)get_version_objects
: Retrieves objects from a specific version
project_id
: The ID of the Speckle projectversion_id
: The ID of the version to retrieve objects frominclude_children
(optional): Whether to include children objects in the response (default: false)query_object_properties
: Queries specific properties from objects in a version
project_id
: The ID of the Speckle projectversion_id
: The ID of the version to retrieve objects fromproperty_path
: The dot-notation path to the property (e.g., "elements.0.name")This project is licensed under the MIT License - see the LICENSE file for details.