- Built from scratch: apollo, chargebee, datadog, greenhouse, lever, loom, pandadoc, salesloft, sendgrid, supabase, typeform, webflow, zoho-crm, twilio, reonomy - TSC fixes: brevo, google-console, housecall-pro, meta-ads, rippling, bamboohr, close, fieldedge, freshdesk, helpscout, toast, touchbistro, hubspot, notion, quickbooks, airtable, gusto, intercom, linear, monday, salesforce, shopify, square, wave, xero - Entry points added: close, touchbistro - All 65 active servers compile with 0 TypeScript errors - 4 specialty servers skipped (competitor-research, compliance-grc, n8n-apps, product-analytics)
153 lines
4.3 KiB
Markdown
153 lines
4.3 KiB
Markdown
# Loom MCP Server
|
|
|
|
MCP server for Loom video platform - manage videos, folders, comments, reactions, transcripts, embeds, and workspaces.
|
|
|
|
## Features
|
|
|
|
- 📹 **Video Management** - List, get, update, delete, and duplicate videos
|
|
- 📁 **Folder Organization** - Organize videos with nested folder structures
|
|
- 💬 **Comments & Reactions** - Threaded comments with timestamp pins and emoji reactions
|
|
- 📝 **Transcripts** - Access full video transcripts with search across workspace
|
|
- 🔗 **Embeds** - Generate customizable embed codes for websites
|
|
- 🏢 **Workspace Management** - Manage workspaces and analytics
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Set your Loom API key:
|
|
|
|
```bash
|
|
export LOOM_API_KEY='your_api_key_here'
|
|
```
|
|
|
|
## Usage
|
|
|
|
Run the server:
|
|
|
|
```bash
|
|
npm start
|
|
# or
|
|
loom-mcp-server
|
|
```
|
|
|
|
Add to Claude Desktop config:
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"loom": {
|
|
"command": "node",
|
|
"args": ["/path/to/loom/dist/index.js"],
|
|
"env": {
|
|
"LOOM_API_KEY": "your_api_key_here"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Available Tools
|
|
|
|
### Video Tools (5)
|
|
- `list_videos` - List videos with workspace/folder filtering, pagination
|
|
- `get_video` - Get detailed video metadata, status, URLs, engagement
|
|
- `update_video` - Update name, description, privacy, folder, download settings
|
|
- `delete_video` - Permanently delete video
|
|
- `duplicate_video` - Create copy of video
|
|
|
|
### Folder Tools (5)
|
|
- `list_folders` - List workspace folders with hierarchy
|
|
- `get_folder` - Get folder details and video count
|
|
- `create_folder` - Create new folder with optional parent
|
|
- `update_folder` - Rename or move folder
|
|
- `delete_folder` - Delete folder (videos move to root)
|
|
|
|
### Engagement Tools (6)
|
|
- `list_comments` - List video comments with pagination
|
|
- `create_comment` - Add comment with optional timestamp and threading
|
|
- `update_comment` - Edit comment or mark resolved
|
|
- `delete_comment` - Delete comment
|
|
- `add_reaction` - Add emoji reaction with optional timestamp
|
|
- `remove_reaction` - Remove reaction
|
|
|
|
### Transcript Tools (2)
|
|
- `get_transcript` - Get full transcript with timestamps
|
|
- `search_transcripts` - Search across workspace transcripts
|
|
|
|
### Sharing Tools (1)
|
|
- `get_embed_code` - Generate embeddable HTML with customization
|
|
|
|
### Workspace Tools (3)
|
|
- `list_workspaces` - List accessible workspaces
|
|
- `get_workspace` - Get workspace details and limits
|
|
- `get_workspace_stats` - Get analytics (videos, views, storage)
|
|
|
|
**Total: 22 tools**
|
|
|
|
## API Coverage
|
|
|
|
### Core Entities
|
|
- ✅ Videos (list, get, update, delete, duplicate)
|
|
- ✅ Folders (list, get, create, update, delete)
|
|
- ✅ Comments (list, create, update, delete)
|
|
- ✅ Reactions (add, remove)
|
|
- ✅ Transcripts (get, search)
|
|
- ✅ Embeds (generate code)
|
|
- ✅ Workspaces (list, get, stats)
|
|
|
|
### Features
|
|
- ✅ Pagination on all list operations
|
|
- ✅ Threaded comments
|
|
- ✅ Timestamp-based comments & reactions
|
|
- ✅ Nested folder structures
|
|
- ✅ Privacy controls
|
|
- ✅ Transcript search
|
|
- ✅ Embed customization
|
|
- ✅ Rate limiting
|
|
- ✅ Error handling
|
|
|
|
## Rate Limits
|
|
|
|
- Standard: 100 requests/minute
|
|
- Automatic rate limit handling with backoff
|
|
- Rate limit headers tracked and respected
|
|
|
|
## Tool Naming Conventions
|
|
|
|
- `list_*` - Paginated collections (videos, folders, comments, workspaces)
|
|
- `get_*` - Single resource retrieval (video, folder, transcript, workspace)
|
|
- `create_*` - Resource creation (folder, comment)
|
|
- `update_*` - Resource modification (video, folder, comment)
|
|
- `delete_*` - Resource deletion (video, folder, comment)
|
|
- `add_*` - Adding sub-resources (reaction)
|
|
- `remove_*` - Removing sub-resources (reaction)
|
|
- `search_*` - Search operations (transcripts)
|
|
|
|
## Architecture
|
|
|
|
```
|
|
src/
|
|
├── index.ts # MCP server entry point
|
|
├── client/
|
|
│ └── loom-client.ts # API client with auth & rate limiting
|
|
├── tools/
|
|
│ ├── video-tools.ts # Video management (5 tools)
|
|
│ ├── folder-tools.ts # Folder organization (5 tools)
|
|
│ ├── comment-tools.ts # Comments & reactions (6 tools)
|
|
│ ├── transcript-tools.ts # Transcripts & search (2 tools)
|
|
│ ├── embed-tools.ts # Embed generation (1 tool)
|
|
│ └── workspace-tools.ts # Workspace management (3 tools)
|
|
└── types/
|
|
└── index.ts # TypeScript interfaces
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|