speckle-mcp
The Speckle MCP Server is a bridge between Speckle's API and client applications, providing tools to interact with Speckle projects and models. It offers functionalities for project management, model version access, and property querying, enhancing integration with architectural, engineering, and construction tools.
Speckle MCP Server
A Model Context Protocol (MCP) server for interacting with Speckle, the collaborative data hub that connects with your AEC tools.
Overview
This MCP server acts as a bridge between Speckle's API and client applications and exposes a set of tools that allow users to:
- List and search Speckle projects
- Retrieve detailed project information
- Access model versions within projects
- Retrieve and query objects and their properties from specific versions
Installation
Prerequisites
- Python 3.13 or higher
- Speckle account with a personal access token
- uv for dependency management and virtual environments
Setup
-
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
Configuration
Environment Variables
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)
MCP Configuration
To use this server with Claude, you need to update your MCP configuration file. The configuration file is typically located at:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%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.
Available Tools
Projects
-
list_projects
: Lists all accessible Speckle projects- Parameters:
limit
(optional): Maximum number of projects to retrieve (default: 20)
- Parameters:
-
get_project_details
: Retrieves detailed information about a specific project- Parameters:
project_id
: The ID of the Speckle project to retrievelimit
(optional): Maximum number of models to retrieve (default: 20)
- Parameters:
-
search_projects
: Searches for projects by name or description- Parameters:
query
: The search term to look for in project names and descriptions
- Parameters:
Models
get_model_versions
: Lists all versions for a specific model- Parameters:
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)
- Parameters:
Objects
-
get_version_objects
: Retrieves objects from a specific version- Parameters:
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)
- Parameters:
-
query_object_properties
: Queries specific properties from objects in a version- Parameters:
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")
- Parameters:
Troubleshooting
- If you encounter authentication issues, make sure your Speckle token is valid and has the necessary permissions
- Check the server logs for detailed error messages
- Ensure the environment variables are correctly set in the MCP configuration
License
This project is licensed under the MIT License - see the LICENSE file for details.