loom-mcp
MCP server that exposes 59 tools for Loom's internal GraphQL API, enabling listing, searching, and managing Loom videos, transcripts, comments, tasks, and more.
README
Loom MCP Server
MCP server exposing 59 tools for Loom's internal GraphQL API. Works with Claude, Cursor, or any MCP-compatible client.
Features
- List, search, and get detailed metadata for Loom videos
- Read transcripts, captions, AI summaries, chapters, and key takeaways
- Save any fetched content to disk on demand via
save_dirparameter - Manage comments, tasks, reactions, and tags
- Organize with folders, spaces, and watch lists
- Update video settings, share to spaces, and more
Prerequisites
- Python 3.11+
- uv package manager
Setup
Authentication
[!IMPORTANT] This server uses Loom's internal GraphQL API via a browser session cookie. There is no official API key — you must grab the cookie from your browser.
- Open loom.com in your browser
- Open DevTools (F12) → Application → Cookies →
https://www.loom.com - Copy the value of the
connect.sidcookie (starts withs%3A...) - Paste it as
LOOM_COOKIEin your MCP client config below, prefixed withconnect.sid=
The cookie lasts about 30 days. See Troubleshooting if you get auth errors.
Installation
Pick your MCP client below for the appropriate config. Each uses uvx to install and run directly from GitHub — no clone needed.
<details> <summary><b>Claude Desktop</b></summary>
Add to your claude_desktop_config.json:
{
"mcpServers": {
"loom": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/karbassi/loom-mcp.git", "loom-mcp"],
"env": {
"LOOM_COOKIE": "connect.sid=s%3A..."
}
}
}
}
</details>
<details> <summary><b>Claude Code</b></summary>
claude mcp add loom -- uvx --from git+https://github.com/karbassi/loom-mcp.git loom-mcp
Then set the env var in your shell or .env:
export LOOM_COOKIE="connect.sid=s%3A..."
</details>
<details> <summary><b>Cursor</b></summary>
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"loom": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/karbassi/loom-mcp.git", "loom-mcp"],
"env": {
"LOOM_COOKIE": "connect.sid=s%3A..."
}
}
}
}
</details>
<details> <summary><b>VS Code</b></summary>
Add to your VS Code settings (.vscode/mcp.json):
{
"mcpServers": {
"loom": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "git+https://github.com/karbassi/loom-mcp.git", "loom-mcp"],
"env": {
"LOOM_COOKIE": "connect.sid=s%3A..."
}
}
}
}
</details>
<details> <summary><b>Local clone</b></summary>
git clone git@github.com:karbassi/loom-mcp.git
cd loom-mcp
uv sync
uv run loom-mcp
Or reference it from any MCP client:
{
"mcpServers": {
"loom": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/loom-mcp", "loom-mcp"],
"env": {
"LOOM_COOKIE": "connect.sid=s%3A..."
}
}
}
}
</details>
Tools
Read (30 tools)
Tools marked with Save accept an optional save_dir parameter — see Saving to disk.
| Tool | Description | Save |
|---|---|---|
list_videos |
List your videos, sorted by most recent | |
search_videos |
AI-powered semantic search | |
get_video |
Video metadata (name, duration, owner, views) | metadata.json |
get_transcript |
Full transcript with timestamps and speakers | transcript.txt |
get_captions |
WebVTT captions with start+end timestamps per cue | captions.vtt |
get_summary |
AI-generated summary | summary.txt |
get_chapters |
AI-generated chapters | chapters.txt |
get_description |
AI-generated detailed description with timestamped sections | description.txt |
get_key_takeaways |
AI-generated key takeaways | takeaways.txt |
get_comments |
Comments and replies | comments.txt |
get_tasks |
AI-generated action items | tasks.txt |
get_reactions |
Emoji reactions | reactions.txt |
get_tags |
Video tags | tags.txt |
get_backlinks |
External references (where the video is shared/embedded) | backlinks.txt |
get_meeting_notes |
Confluence meeting notes URL | |
get_confluence_pages |
Linked Confluence pages | |
get_download_url |
Signed MP4 download URL | |
get_video_details |
All-in-one: metadata + transcript + chapters + summary + comments + tasks | details.md + all above |
list_folders |
List your folders | |
list_spaces |
List your workspaces | |
get_space |
Space details (name, privacy, primary) | |
search_folders |
Search folders by name | |
get_folder |
Folder details | |
get_last_watch_time |
Last timestamp where you stopped watching | |
get_watch_later_count |
Number of videos in your Watch Later list | |
get_total_videos_count |
Total videos created by a user | |
get_frequent_reactions |
Your most-used emoji reaction types | |
get_comment_reactions |
Emoji reactions on a specific comment | |
get_user |
User profile by ID (name, email, company, avatar) | |
search_workspace_tags |
Search tags in your workspace |
Write (29 tools)
[!NOTE] Write tools modify your Loom data. Destructive actions (delete, archive, move) cannot always be undone.
| Tool | Description |
|---|---|
update_video_name |
Rename a video |
update_video_description |
Update video description |
update_video_settings |
Update video settings (downloads, comments, etc.) |
create_comment |
Post a comment (with optional timestamp) |
edit_comment |
Edit an existing comment |
delete_comment |
Delete a comment |
create_task |
Create an action item on a video |
update_task |
Update the content of an action item |
delete_task |
Delete an action item |
approve_task |
Mark a task as approved |
respond_to_task |
Respond to a task |
add_reaction |
Add an emoji reaction at a timestamp |
delete_reaction |
Delete a reaction |
add_comment_reaction |
React to a comment with an emoji |
toggle_following |
Follow/unfollow a video |
toggle_following_tag |
Follow/unfollow a workspace tag |
archive_videos |
Archive or unarchive videos |
duplicate_video |
Duplicate a video |
delete_video |
Permanently delete a video |
recover_video |
Recover a deleted video from trash |
pin_video |
Pin or unpin a video in your library |
add_to_watch_later |
Add to Watch Later list |
remove_from_watch_later |
Remove from Watch Later list |
create_folder |
Create a new folder |
rename_folder |
Rename a folder |
delete_folders |
Delete folders |
move_videos |
Move videos to a different folder |
move_folders |
Move folders into a different parent folder |
share_videos_to_spaces |
Share videos to one or more spaces |
Saving to disk
Most per-video read tools accept an optional save_dir parameter. When provided, the tool saves its output to {save_dir}/{video_id}/ and returns the file path alongside the content. When omitted, nothing is saved.
Just ask naturally — "get the details from my last meeting and save them to the ask directory" — and the LLM will pass save_dir="ask" to the tool.
get_video_details saves each piece individually (metadata.json, transcript.txt, summary.txt, etc.) plus a combined details.md.
Troubleshooting
Auth errors
If you get auth errors, your connect.sid cookie has expired (~30 days). Grab a fresh one from your browser using the steps in Authentication.
Debugging with MCP Inspector
npx @modelcontextprotocol/inspector uvx --from git+https://github.com/karbassi/loom-mcp.git loom-mcp
Contributing
Issues and pull requests are welcome on GitHub.
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。