icon for mcp server

Speckle

STDIO

MCP server for Speckle integration, enabling AEC tool data access and collaboration.

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

  1. Clone this repository:

    git clone https://github.com/bimgeek/speckle-mcp.git cd speckle-mcp
  2. Ensure you have Python 3.13 installed:

    python --version # Should show Python 3.13.x
  3. 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)
  • get_project_details: Retrieves detailed information about a specific project

    • Parameters:
      • project_id: The ID of the Speckle project to retrieve
      • limit (optional): Maximum number of models to retrieve (default: 20)
  • search_projects: Searches for projects by name or description

    • Parameters:
      • query: The search term to look for in project names and descriptions

Models

  • get_model_versions: Lists all versions for a specific model
    • Parameters:
      • project_id: The ID of the Speckle project
      • model_id: The ID of the model to retrieve versions for
      • limit (optional): Maximum number of versions to retrieve (default: 20)

Objects

  • get_version_objects: Retrieves objects from a specific version

    • Parameters:
      • project_id: The ID of the Speckle project
      • version_id: The ID of the version to retrieve objects from
      • include_children (optional): Whether to include children objects in the response (default: false)
  • query_object_properties: Queries specific properties from objects in a version

    • Parameters:
      • project_id: The ID of the Speckle project
      • version_id: The ID of the version to retrieve objects from
      • property_path: The dot-notation path to the property (e.g., "elements.0.name")

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.

Be the First to Experience MCP Now