Skip to main content

MCP server for Loom video management

Project description

loom-mcp

MCP server for Loom video management. Provides tools to list, retrieve, edit, and merge Loom screen recordings.

Features

  • list_recorded_videos - Retrieve a list of recorded videos with pagination and folder filtering
  • get_video - Get detailed information about a specific video
  • edit_video - Edit videos by trimming or extracting clips
  • merge_videos - Combine multiple videos into one

Installation

# Clone or download the package
cd loom-mcp

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install with dev dependencies
pip install -e ".[dev]"

Configuration

Create a .env file based on .env.example:

cp .env.example .env

Required environment variables:

Variable Description
LOOM_ACCESS_TOKEN OAuth2 access token for Loom API

Optional environment variables:

Variable Description Default
LOOM_BASE_URL Loom API base URL https://api.loom.com/v1

Getting an Access Token

Loom uses OAuth2 for authentication. To obtain an access token:

  1. Register your application in the Loom Developer Portal
  2. Implement the OAuth2 authorization flow
  3. Use the returned access token in your configuration

Note: Loom's public API access may be limited. Enterprise users may have additional API capabilities. Contact Loom for API access details.

Usage with Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "loom": {
      "command": "/path/to/loom-mcp/venv/bin/python",
      "args": ["-m", "loom_mcp.server"],
      "env": {
        "LOOM_ACCESS_TOKEN": "your-access-token"
      }
    }
  }
}

Tools

list_recorded_videos

Retrieve a list of recorded videos from Loom.

Parameters:

  • limit (optional): Maximum number of videos to return (1-100, default 50)
  • offset (optional): Pagination offset (default 0)
  • folder_id (optional): Filter videos by folder ID

Example:

{
  "limit": 10,
  "offset": 0,
  "folder_id": "folder-abc"
}

get_video

Retrieve detailed information about a specific video.

Parameters:

  • video_id (required): Unique identifier for the video

Example:

{
  "video_id": "abc123"
}

edit_video

Edit a video by adding clips or trimming sections.

Parameters:

  • video_id (required): Unique identifier for the video
  • editing_details (required): Object containing edit instructions
    • trim_start: Start time in seconds to trim from beginning
    • trim_end: End time in seconds where video should end
    • clips: List of clip objects with start and end times
    • title: Optional new title for the edited video
    • description: Optional new description

Example:

{
  "video_id": "abc123",
  "editing_details": {
    "trim_start": 5,
    "trim_end": 120,
    "title": "Edited Demo"
  }
}

merge_videos

Combine multiple videos into one merged video.

Parameters:

  • video_ids (required): List of video IDs to merge (minimum 2, in order)
  • title (optional): Title for the merged video

Example:

{
  "video_ids": ["video-1", "video-2", "video-3"],
  "title": "Combined Demo"
}

Development

Running Tests

# Activate virtual environment
source venv/bin/activate

# Run tests
pytest

# Run with coverage
pytest --cov=loom_mcp --cov-report=term-missing

Code Quality

# Format and lint
ruff check src tests
ruff format src tests

# Type checking
mypy src

Project Structure

loom-mcp/
├── src/
│   └── loom_mcp/
│       ├── __init__.py
│       ├── server.py          # MCP server entry point
│       ├── clients/
│       │   ├── __init__.py
│       │   └── loom.py        # Loom API client
│       └── tools/
│           ├── __init__.py
│           ├── list_recorded_videos.py
│           ├── get_video.py
│           ├── edit_video.py
│           └── merge_videos.py
├── tests/
│   ├── __init__.py
│   ├── conftest.py
│   ├── test_loom_client.py
│   ├── test_tools.py
│   └── test_server.py
├── pyproject.toml
├── README.md
└── .env.example

License

MIT


Generated by GRIMLOCK MCP Factory

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

loom_mcp-1.0.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

loom_mcp-1.0.0-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file loom_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: loom_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for loom_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 554dd5bb7e4c5caa89fbc0f760b812132e573ee1e5c73f8434ad599f7258ebd2
MD5 0afe1751704e27c8858072677f42132d
BLAKE2b-256 60ebe94dfa92d1ee794673ceda1092951708164cb2536860e5bd54ead79b09bb

See more details on using hashes here.

File details

Details for the file loom_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: loom_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for loom_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 77c85be92945c440bb767cc1d59676faaec66cbff6450cddcf20c3233a308395
MD5 55e572cc8fb0332a373b16de3610fdc0
BLAKE2b-256 4fbccd2ee7b710219236d19567d8fd6f6345e4dc5caca0209793e86da7ed21c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page