MCP Server for VSS#
The VSS MCP server exposes the Video Search and Summarization (VSS) REST API to AI agents and IDE extensions using the Model Context Protocol (MCP). It reads the live VSS OpenAPI spec at startup and registers a selected subset of endpoints as MCP tools and resources.
Note: The MCP server currently supports Search mode only. Summary and combined Search + Summary modes will be supported in a future release.
The server is controlled by a filter file, a small JSON document that lists exactly which VSS endpoints to expose and whether each appears as a tool or a resource. The bundled search.json filter covers the Search mode:
Prerequisites#
The VSS application must be running and reachable before starting this server.
Docker and Docker Compose installed (Installation Guide).
Network access from the machine running this container to the VSS host.
Quick Start#
Navigate to the mcp/ directory first, all commands below assume you are there:
cd sample-applications/video-search-and-summarization/mcp
Docker Compose builds the MCP server and starts MCP Inspector alongside it for interactive testing and debugging.
Create your
.envfile:cp .env.example .env
Edit
.env— set the VSS backend IP and HOST IP:VSS_IP=<your-vss-ip> HOST_IP=<your-host-ip>
Note: The
VSS_IPvariable is automatically appended tono_proxyinside the containers bycompose.yaml, so the MCP server can always reach the VSS backend directly without going through the proxy.Build and start:
docker compose up --build -d
Access the services:
Service
URL
Description
MCP Server
http://<HOST_IP>:8000/mcpStreamable HTTP MCP endpoint
MCP Inspector
http://<HOST_IP>:6274Web UI for testing the MCP server
Connect Inspector to MCP Server:
Open
http://<HOST_IP>:6274in your browser.Select Streamable HTTP transport.
Enter
http://<HOST_IP>:8000/mcpas the URL.Click Connect.
Stop:
docker compose down
Runtime Configuration#
Variable |
Required |
Default |
Description |
|---|---|---|---|
|
Yes |
- |
URL to the VSS OpenAPI/Swagger JSON document |
|
Yes |
- |
Base URL of the running VSS REST service |
|
Yes |
- |
Path to the filter config file inside the container |
|
No |
|
Outbound request timeout in seconds |
|
No |
|
Python log level ( |
|
No |
|
Bind address |
|
No |
|
Listening port |
|
No |
|
Streamable HTTP endpoint path |
What MCP Clients See#
At startup the server reads the VSS OpenAPI spec and the filter file, then registers exactly the operations listed in the filter.
Tools (state-changing or parameterised operations), examples from search.json:
Tool name |
VSS endpoint |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Tool names are built from prefix + name in the filter file, forming names like "vss_run_search_query".
Resources (read-only, GET only) are named from prefix + name in the filter file. For example, a resource with prefix: "vss" and name: "app_features" is reachable as:
resource://vss_app_features
Video Upload#
POST /videos is intentionally not exposed. Video upload is a long-running multipart operation better handled directly via the VSS REST API. Use the MCP server for discovery, search and status workflows only.