Search documentation
Search documentation pages and implementation topics.
Summary
The VideoVector MCP docs show how AI clients can browse indexes, run extraction engines, search media evidence, inspect workflow resources, and validate available tools.
Connect to hosted VideoVector
Use https://api.vectormethods.com/mcp as the remote MCP server URL and
choose OAuth in your client. Complete browser sign-in with your VideoVector
account, verify your email if requested, and return to the client. No API key
or local installation is needed for this connection.
OAuth connects the signed-in account, including permitted create, update, and delete operations. Ownership, credits, and plan entitlements still apply. Use a scoped API key when an integration needs a narrower permission boundary.
Transport choices
| Connection | Authentication | Setup |
|---|---|---|
| Hosted Streamable HTTP | Browser OAuth | Remote URL above; the client handles discovery and token refresh |
| Hosted HTTP automation | Scoped API key | Same URL with X-API-Key; existing API-key clients remain supported |
| Local stdio | Scoped API key | Run @vectormethods/videovector-mcp-server with VIDEOVECTOR_API_KEY |
The hosted endpoint is stateless. Use MCP POST requests, not an SSE URL or an MCP session ID. See custom clients and OAuth discovery for the exact protocol and authorization contract.
Client setup
- Claude and Claude Desktop
- Cursor
- Custom clients, OAuth, and self-hosted HTTP
- Tools, helper endpoints, and playground
Local package identifiers
- package:
@vectormethods/videovector-mcp-server - command:
videovector-mcp - server name:
videovector - API-key environment variable:
VIDEOVECTOR_API_KEY
REST helper endpoints
The API also exposes /api/v2/mcp/status, /api/v2/mcp/config,
/api/v2/mcp/tools, and /api/v2/mcp/playground for inspection, API-key config
generation, and direct tool testing. These are REST helpers, not OAuth
registration or token endpoints. The remote client's tools/list response is
authoritative for the tools available on its connection.
MCP / claude-desktop
Claude Desktop setup
Connect Claude and Claude Desktop to hosted VideoVector with browser OAuth, or use a local stdio server with an API key.
Connect with browser OAuth
Add https://api.vectormethods.com/mcp as a custom remote connector in
Claude's Customize → Connectors. Use Sign in now and choose
Register automatically for the OAuth client. Finish adding the connector,
then sign in to VideoVector and return to Claude. Team and Enterprise
workspaces may require an owner to add it first. See
Claude's current connector instructions.
Remote connectors are configured through Claude's connector UI, including
when using Claude Desktop. Do not put a remote URL in
claude_desktop_config.json; that file configures local stdio servers.
You do not need an API key or local npm package for OAuth. The client discovers the authorization server and handles token refresh. The connection uses your VideoVector account's permissions, credits, and entitlements. See OAuth access and troubleshooting.
Local stdio alternative
For a local server with an explicitly scoped API key, Claude Desktop can launch
the published package with npx:
{
"mcpServers": {
"videovector": {
"command": "npx",
"args": ["-y", "@vectormethods/videovector-mcp-server"],
"env": {
"VIDEOVECTOR_API_KEY": "sk_live_..."
}
}
}
}
On macOS, merge this entry into
~/Library/Application Support/Claude/claude_desktop_config.json; on Windows,
use %APPDATA%\Claude\claude_desktop_config.json. Keep the real key in local
configuration only. Restart Claude Desktop after changing the file.
Verify the connection
Enable VideoVector for the conversation and ask Claude to list your indexes. A visible tool list alone only proves discovery; a successful resource read confirms authentication.
Generate local API-key configuration
curl "https://api.vectormethods.com/api/v2/mcp/config?platform=claude-desktop" \
-H "Authorization: Bearer <verified-firebase-id-token>"
This helper requires a verified VideoVector browser session. If api_key_id
is omitted, it reuses a suitable API key or creates one with read and search
scopes. The result is local API-key configuration, not OAuth configuration.
MCP / cursor
Cursor setup
Connect Cursor to hosted VideoVector with browser OAuth, or run the local stdio MCP server with a scoped API key.
Connect with browser OAuth
Add this entry to ~/.cursor/mcp.json for all projects, or .cursor/mcp.json
inside a project:
{
"mcpServers": {
"videovector": {
"url": "https://api.vectormethods.com/mcp"
}
}
}
Save the configuration, enable the server in Cursor, and complete its OAuth connection prompt. Sign in to VideoVector in the browser, verify your email if requested, and return to Cursor. No API key, authorization header, or client secret belongs in this OAuth configuration. Cursor discovers the authorization server and manages tokens. See Cursor's MCP documentation for current configuration and connection controls.
The connection uses the signed-in VideoVector account. Ask Cursor to list your indexes to verify authenticated access; discovering the tool list alone does not authenticate a resource read.
Local stdio alternative
Use a local process when you need local file-path uploads or an explicitly scoped API key:
{
"mcpServers": {
"videovector": {
"command": "npx",
"args": ["-y", "@vectormethods/videovector-mcp-server"],
"env": {
"VIDEOVECTOR_API_KEY": "${env:VIDEOVECTOR_API_KEY}"
}
}
}
}
Set the API key in your environment, then restart Cursor. Choose either this
local entry or the remote entry under the videovector name. API-key scopes
limit the local integration; account OAuth does not use those scopes.
Generate local API-key configuration
curl "https://api.vectormethods.com/api/v2/mcp/config?platform=cursor" \
-H "Authorization: Bearer <verified-firebase-id-token>"
Use api_key_id=<key_id> to select an existing key. The helper generates
API-key configuration and requires a verified VideoVector browser session;
it does not register an OAuth client. See
OAuth discovery and troubleshooting.
MCP / custom-http
Custom clients and HTTP transport
Connect custom MCP clients to hosted VideoVector with OAuth discovery, PKCE, refresh tokens, or existing scoped API keys.
Hosted OAuth connection
Use https://api.vectormethods.com/mcp as the Streamable HTTP server URL.
Choose OAuth in the client and start account linking. Sign in to VideoVector
in the browser tab opened by the client, verify your email if requested, and
keep the tab open until the client resumes.
The login continuation at https://app.vectormethods.com/oauth/workos/login
is part of that flow. It is not a client callback URI or a standalone login
URL to bookmark. The client must begin a fresh authorization request.
New accounts start on Free; linking requires no paid plan or profile form.
OAuth grants access to the signed-in account, including permitted create, update, delete, and tenant-admin operations. Account ownership, credits, and entitlements remain enforced. OAuth does not grant platform administration, API-key management, or access to Firebase-session-only or internal routes. For narrower automation permissions, use a scoped API key.
OAuth discovery and tokens
| Setting | Value |
|---|---|
| MCP URL and resource | https://api.vectormethods.com/mcp |
| Protected-resource metadata | https://api.vectormethods.com/.well-known/oauth-protected-resource/mcp |
| Compatibility alias | https://api.vectormethods.com/.well-known/oauth-protected-resource |
| Authorization-server discovery | Advertised issuer plus /.well-known/oauth-authorization-server |
| Authorization flow | Authorization code with PKCE S256 |
| OIDC identity scopes | openid email profile offline_access |
| MCP credential | Authorization: Bearer <access_token> |
Read the metadata's authorization_servers value, then discover that issuer's
authorization, token, dynamic-registration, and JWKS endpoints. Do not pin a
provider hostname. Register the exact callback URI supplied by the client.
Use resource=https://api.vectormethods.com/mcp on both the authorization
request and the authorization-code token exchange.
Request offline_access when the client needs refresh tokens. Use the
advertised token endpoint's refresh_token grant, retain any replacement
refresh token, and preserve the MCP resource audience. Let the client use the
token response's expiry; do not hardcode a token lifetime or paste bearer
tokens into prompts or permanent config.
The protected-resource document intentionally omits scopes_supported, and
hosted tools declare oauth2 with scopes: []. OIDC identity scopes are not
VideoVector permissions: do not request API-key scopes such as read, write,
search, or admin. Provider support for other grant types does not make
client credentials or device codes a substitute for this account-linking flow.
Streamable HTTP requests
Send MCP JSON requests with:
POST /mcp
Authorization: Bearer <access_token>
Content-Type: application/json
Accept: application/json, text/event-stream
The endpoint is stateless. Do not send or retain MCP-Session-Id.
GET /mcp and DELETE /mcp return 405; opening the URL in a browser is not
an authentication test. Initialization and tool discovery are available before
sign-in, while anonymous protected tool calls return 401 with a
WWW-Authenticate challenge pointing to the protected-resource metadata.
Existing API-key integrations
The same hosted URL also accepts exactly one of:
X-API-Key: <your-videovector-api-key>Authorization: Bearer <your-videovector-api-key>
Do not combine X-API-Key with Authorization. API-key scopes continue to
limit these integrations. OAuth access tokens belong in the bearer header,
not X-API-Key.
OAuth discovery omits tools that accept or return credentials:
create_gcs_connector, create_s3_connector, create_azure_connector,
create_webhook, and get_export_download_url. Configure connectors and
webhooks in VideoVector, then use the existing resources from MCP. Use
returned authenticated app links to access exports. API-key HTTP and stdio
clients retain their existing tool surface.
Local stdio and self-hosted HTTP
The local package uses VIDEOVECTOR_API_KEY:
npm install -g @vectormethods/videovector-mcp-server
VIDEOVECTOR_API_KEY=sk_live_... videovector-mcp
VIDEOVECTOR_BASE_URL defaults to https://api.vectormethods.com/api/v2;
VIDEOVECTOR_TIMEOUT and VIDEOVECTOR_MAX_RETRIES configure API requests.
The /api/v2/mcp/config helper generates API-key configurations, not OAuth
registration or tokens.
Operators hosting their own server can set MCP_TRANSPORT_MODE=http and
configure host/origin allowlists. OAuth verification must match the backend's
supported WorkOS issuer, resource audience, and signed Firebase identity claims:
the same bearer token is forwarded and independently verified by the API.
Node environment variables alone cannot add another provider to the hosted API.
OAuth is disabled by default in the local deployment. Follow the public
self-hosting guide
for verification and metadata rollout settings. The VectorMethods-hosted
endpoint already has OAuth and public discovery enabled.
Troubleshooting
- Interrupted or missing linking request: restart connecting from the MCP client. Do not replay a one-use login continuation or open it in another tab.
- Wrong account: sign out of VideoVector and start a fresh connection with the intended account.
- Email verification required: verify the account's email, then resume or restart the client connection.
- Expired or invalid token: let the client refresh; reconnect if refresh
is rejected. Authentication failures can appear as HTTP
401challenges or tool-resultmcp/www_authenticatemetadata. - Plan, credit, quota, or permission error: resolve the stated product requirement. These are not requests to relink OAuth.
- Stale tools or missing result card: refresh the client's discovered tools. MCP Apps rendering depends on the client.
Disconnect the integration in the client when it is no longer needed.
MCP / tools-and-playground
Tools, helper endpoints, and playground
Inspect VideoVector MCP tool categories, use helper endpoints for config and tool discovery, and test tool execution through the MCP playground.
Helper endpoints
For a hosted OAuth connection, use https://api.vectormethods.com/mcp and let
the client discover and authenticate the server. The REST helpers below serve
API-key configuration and API testing; /mcp/config requires a verified
VideoVector browser session and does not register OAuth clients or issue
tokens. See OAuth setup.
| Method | Path | Purpose |
|---|---|---|
GET | /api/v2/mcp/status | Inspect package name, install command, tool count, and supported platforms |
GET | /api/v2/mcp/config | Generate platform-specific config |
GET | /api/v2/mcp/tools | Return tool definitions and category groupings |
POST | /api/v2/mcp/playground | Execute a tool directly for testing |
Tool categories
The tool definition file groups public tools into categories such as:
- Search
- Discovery
- Video and segment inspection
- Extraction executions
- Extraction engine management
- Cloud connectors
- Import jobs
- Index management
- Video management
- Exports
- Webhooks
Representative workflows include:
- searching an index with
search_videos,search_videos_by_image, ormultimodal_search - building extraction engines with
create_promptandtest_prompt_schema - executing and monitoring extraction runs with
process_media,get_prompt_run_status, andget_prompt_run_results - operating imports, exports, connectors, and webhooks without leaving the MCP client
Status response
GET /api/v2/mcp/status returns fields such as:
server_nameserver_versionpackage_namenpm_install_commanddocumentation_urltools_countsupported_platforms
Tool discovery response
GET /api/v2/mcp/tools returns:
total_counttoolscategories
Each tool includes a public input schema that mirrors the MCP SDK Tool definition shape.
The REST helper catalog describes the API-key tool contract. Use the remote
connection's tools/list response for its actual available tools. OAuth
connections omit create_gcs_connector, create_s3_connector,
create_azure_connector, create_webhook, and get_export_download_url
because those tools accept or return credentials. Configure connectors and
webhooks in VideoVector; use authenticated app links for exports. Existing
API-key HTTP and stdio clients retain these tools.
OAuth initialization and tool discovery can run before sign-in. Protected
tool execution requires authentication. Hosted tool security declarations use
oauth2 with scopes: []; API-key permission scopes are not OAuth scopes.
Playground execution
The playground endpoint accepts:
{
"tool_name": "search_videos",
"arguments": {
"index_id": "idx_archive",
"query": "reporter outside a station entrance",
"top_k": 5
}
}
The response includes:
tool_namesuccessresulterrorexecution_time_ms
API-key calls enforce each tool's required scope, including search, read,
write, or admin as appropriate. OAuth calls use the linked account's tenant
permissions, while product ownership, plan, and credit checks still apply.
Structured playground payloads
For several tool families, the controller wraps results in structuredContent plus text content so clients can render both machine-readable and human-readable output cleanly.
Use the playground to validate argument shapes and output structure before you hand the server to an agent or a production client.
Generation, execution, and matches
For fast on-demand testing, invoke the find skill with a goal and up to 100
attached videos. Its find tool handles native attachments, authorized local
stdio paths, or an inline multi-file picker. The skill follows the import job
and Playground execution, then presents Matches and All extracted results.
Each new command uploads again and creates a fresh prompt and execution;
transport retries resume the same invocation. Use the advanced tools below
for deliberate reuse of saved prompts and uploaded media.
Find includes a segment transcription field, keeps advanced transcription and
image embeddings off, and uses content-aware extraction. All supplied videos remain one Playground run. Host command namespaces vary; Claude Code exposes
/videovector:find, while OpenAI hosts show the installed skill in their
command picker. Hosted tools declare OpenAI native file inputs and share an
MCP Apps picker when the host cannot forward a video.
Use define_prompt to turn a goal into extraction schemas. When the goal calls
for finding, filtering, or shortlisting matches, the same generation also adds
an optional selection filter. The saved prompt carries that filter into
process_media; extraction-only requests remain unfiltered.
Video and audio support content_aware (the default) and fixed segmentation.
Save settings through create_prompt or update_prompt under execution_config.
process_media and estimate_prompt_run accept the same settings as top-level
overrides; omitted or null overrides inherit the engine configuration.
Fixed mode requires the corresponding segment duration in seconds from 1 to 300.
Generated instructions express supported intent qualitatively, such as concise social clips or useful context around a target moment. Content-aware video and audio use chronological coverage and 10-second to 15-minute prompt guidance, without enforcing those durations on the model's output.
process_media returns immediately. Poll get_prompt_run_status, then call
get_prompt_run_results with the returned run ID. Results include separate
filtered and unfiltered pages by default, so matches and the underlying
extraction stay available together. Use result_level: "segment" (the default)
or "video", and optionally narrow to video_id.
Each page has its own pagination.next_cursor. Follow it with view: "filtered" and filtered_cursor, or view: "unfiltered" and
unfiltered_cursor. Pages default to 10 rows and allow at most 50. Selection
status distinguishes pending processing, no configured filter, failed
selection, and ready results including zero matches. Result reads do not
repeat generation or processing.
The simple profile includes generation, processing, status, and results. The
former execute_prompt MCP tool has been replaced by process_media. Omitted
execution overrides use the saved engine settings in both indexed media and
Playground. The hosted transport remains stateless Streamable HTTP with
OAuth for compatible remote MCP clients and API-key authentication for existing
integrations.
