VideoDB MCP Server

VideoDB MCP Server

Connects Claude and other MCP clients to VideoDB, enabling video upload, indexing, semantic search, clipping, and streaming directly from a conversation. OAuth-secured and deployable to Vercel with zero infrastructure.

Category
访问服务器

README

VideoDB MCP Server

A remote MCP server that connects Claude (and any MCP client) to VideoDB — upload, index, search, edit, and stream videos straight from a conversation.

Built to meet Anthropic's connector directory review criteria: OAuth 2.1, Streamable HTTP, read/write tool separation, and full tool annotations. Deploys to Vercel in minutes with zero infrastructure — no database, no Redis.

"Upload this YouTube keynote, index it, and find every moment where they demo the product.
 Then cut those moments into one highlight reel."

Tools

Tool Kind What it does
list_collections read List collections in the account
list_videos read List videos with durations + player links
get_video read Metadata for one video
get_transcript read Plain or timestamped transcript
search_video read Semantic/keyword search inside one video (spoken or visual index)
search_collection read Semantic search across a whole collection
list_scene_indexes read List visual indexes on a video
create_collection write Create a collection
upload_media write Upload video/audio/image from a public URL or YouTube
index_spoken_words write Transcribe + index speech for search
index_scenes write Visually index scenes (optionally prompt-steered)
generate_clip write Cut a clip / supercut from one video → instant stream + player URL
compile_clips write Stitch moments across videos into one stream (highlight reels)
add_subtitles write Burn subtitles from the transcript
generate_thumbnail write Default or timestamped thumbnail
delete_video destructive Permanently delete a video

No AI media generation tools are exposed (VideoDB's gen-AI endpoints exist but are excluded — the Anthropic directory does not accept AI image/video/audio generation).

How auth works (no database)

Claude requires OAuth 2.1; VideoDB accounts use API keys. This server bridges the two with a stateless OAuth layer:

Claude → /oauth/register (Dynamic Client Registration)
       → /oauth/authorize        user pastes their VideoDB API key on a consent page
                                 key is verified live against GET api.videodb.io/user
       → /oauth/token            PKCE-checked; returns access + refresh tokens
       → /mcp                    Bearer token per request

Every artifact (client ID, auth code, access/refresh token) is an AES-256-GCM-sealed payload encrypted with AUTH_SECRET. The user's VideoDB API key travels inside the encrypted token and is decrypted per-request — it is never written to disk, logged, or stored server-side. Tokens are audience-bound to the /mcp URL (RFC 8707), auth codes are PKCE-bound (S256) and live 5 minutes, access tokens 1 hour, refresh tokens 30 days with rotation.

Trade-off to know: with no server-side state, individual tokens can't be revoked before expiry — rotating AUTH_SECRET revokes all connections at once (users just reconnect). If you later need per-user revocation, add a token-ID denylist in Vercel KV.

Deploy to Vercel

  1. Push this repo to GitHub, then Import it at vercel.com/new (or run npx vercel from the repo root — no GitHub needed).
  2. Set one environment variable: AUTH_SECRET — generate with openssl rand -hex 32.
  3. Make sure Fluid compute is enabled (default for new projects) so long-running uploads/indexing fit inside maxDuration = 300. On Pro you can raise it to 800 in app/mcp/route.ts.
  4. Deploy. Your MCP endpoint is https://<your-domain>/mcp.

Point a real domain at it (e.g. mcp.videodb.io) before submitting to the directory — the reviewer expects the server domain to match the service.

Connect it to Claude

  1. Claude → Settings → Connectors → Add custom connector (Team/Enterprise: Organization settings → Connectors).
  2. Enter https://<your-domain>/mcp.
  3. Click Connect — the VideoDB consent page opens; paste your API key from console.videodb.io.
  4. Done. Ask Claude to list my videodb collections to smoke-test.

Also works in Claude Code (claude mcp add --transport http videodb https://<your-domain>/mcp) and MCP Inspector.

Local development

npm install
cp .env.example .env       # set AUTH_SECRET
npm run dev                # http://localhost:3000

End-to-end test (no VideoDB account needed)

The e2e suite exercises the full flow exactly like Claude does — discovery, DCR, consent, PKCE, token exchange + rotation, 401 challenges, MCP initialize/tools-list, and tool calls including the async job-polling path — against a mock VideoDB API:

# terminal 1 — mock VideoDB API on :4519
npm run mock

# terminal 2 — the server pointed at the mock
AUTH_SECRET=test-secret-0123456789 VIDEODB_API_BASE=http://127.0.0.1:4519 npm run dev

# terminal 3
npm run e2e

All green = safe to deploy. To test against the real API, just connect from Claude with a real key — every tool maps 1:1 to documented VideoDB endpoints (docs.videodb.io).

Submitting to the Anthropic connector directory

See docs/SUBMISSION.md for the filled-out checklist: portal steps, listing copy, allowed link URIs, test-account requirements, and the compliance acknowledgments.

Project layout

app/mcp/route.ts                          MCP endpoint (16 tools, annotated) + bearer verification
app/oauth/{authorize,token,register}/     Stateless OAuth 2.1 authorization server
app/.well-known/...                       RFC 9728 + RFC 8414 discovery metadata
lib/videodb.ts                            VideoDB REST client (envelope + async-poll protocol)
lib/oauth.ts, lib/crypto.ts               Sealed-token machinery
lib/consent-page.ts                       VideoDB-branded consent screen
scripts/mock-videodb.mjs, scripts/e2e.mjs Full-flow test harness

License

Apache-2.0 © Spext Labs Inc. (VideoDB)

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选