Skip to main content
Glama
README.md
# Loom Transcript MCP (Fixed)

A working Model Context Protocol (MCP) server for fetching transcripts and comments from Loom videos.

This is a fixed fork of `@daanvanhulsen/loom-transcript-mcp` that resolves the 400 GraphQL errors caused by recent changes to Loom's API.

## What Was Fixed

The original package stopped working due to three critical bugs:

1. **Array vs Object**: The original code sent GraphQL requests as an array `[{...}]` instead of a plain object `{...}`, which Loom's API now rejects with a 400 error.

2. **Missing Headers**: Added proper browser-like headers including `Accept` and `User-Agent` to pass Loom's validation.

3. **Response Parsing**: Fixed response data access from `response.data[0].data` to `response.data.data` to match the correct response format.

## Installation

### NPX (Recommended)
```json
{
  "mcpServers": {
    "loom-transcript": {
      "command": "npx",
      "args": ["-y", "@bstyler/loom-transcript-mcp"]
    }
  }
}
```

### Docker
```bash
# Build
cd C:\MCPs\loom-transcript-mcp-fixed
docker build -t loom-transcript-mcp .

# Add to Claude config
{
  "mcpServers": {
    "loom-transcript": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "loom-transcript-mcp"]
    }
  }
}
```

### From Source
```bash
git clone https://github.com/bStyler/loom-transcript-mcp.git
cd loom-transcript-mcp
npm install
npm run build
node dist/index.js
```

## Features

- **getLoomTranscript**: Fetches the transcript text from any public Loom video URL
- **getLoomComments**: Fetches comments from a Loom video URL

## Usage

After configuring the MCP server in Claude Desktop, you can use it like this:

```
Can you get the transcript from this Loom video? https://www.loom.com/share/abc123
```

## Development

```bash
npm install
npm run build
npm start
```

## License

MIT

## Credits

Original package by @daanvanhulsen  
Fixed by @bStyler

TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one retrieves comments and the other retrieves transcript text from a Loom video URL. There is no overlap or ambiguity between them, as they target different data types from the same resource.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern with 'get' as the verb and descriptive nouns ('LoomComments', 'LoomTranscript'). The naming is uniform and predictable across the tool set.

Tool Count2/5

With only 2 tools, the server feels thin for a transcript-focused domain, lacking operations like search, update, delete, or other common transcript management functions. This minimal set may limit agent capabilities for comprehensive workflows.

Completeness2/5

The tool set is severely incomplete for a transcript domain, offering only retrieval functions without create, update, delete, or search capabilities. This creates significant gaps that could lead to agent failures when trying to perform full lifecycle operations.