Vancam MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VANCAM_API_KEY | No | Your personal Vancam.ai API key. Optional; if not provided, a shared rate-limited key is used. | |
| VANCAM_API_IMAGE_URL | No | Override for the image API URL. Default is https://api.vancam.ai/api?asset_id={id}. | |
| VANCAM_CAMERAS_SEARCH_URL | No | Override for the cameras search API URL. Default is https://api.vancam.ai/cameras/cameras. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_camerasA | List traffic cameras within a map bounding box. Same query the VanCam web app (vancam.ai) runs when the user pans/zooms the map. Use when the user asks for cameras in a visible map area or geographic rectangle. Parameters: min_lat, min_lon, max_lat, max_lon: Bounding box (WGS84) limit: Max cameras to return (1–100, default 100) active_only: If true, return only camera_class=open (live feeds) Returns: Bounds search JSON with enriched image_url per camera. |
| get_cameras_by_radiusA | Get traffic cameras within a radius (km) of a lat/lon point. Radius search. Use when the user asks for cameras near a place, within X km of coordinates, or around an address they geocoded. Parameters: lat, lon: Center point (WGS84) radius: Search radius in kilometers (default 1.0, max 50 per API) limit: Max cameras (1–100, default 50) active_only: If true, only camera_class=open Returns: JSON with type radius_search, count, radius_km, cameras[]. |
| get_cameras_along_routeA | Get traffic cameras along a straight-line route between two points. Same API call as the VanCam web app (vancam.ai) route view. Cameras are returned sorted by route_fraction (0 = origin, 1 = destination). Note: Uses a straight line between origin and destination (PostGIS ST_MakeLine), not a driving route polyline. Buffer is meters perpendicular to that line. Parameters: origin_lat, origin_lon: Route start (WGS84) dest_lat, dest_lon: Route end (WGS84) buffer: Corridor width in meters (default 100, web app uses 100) limit: Max cameras (1–100, default 50, web app uses 50) active_only: If true, only camera_class=open Returns: JSON with type route_search, buffer_meters, cameras[] with route_fraction. |
| get_nearest_camerasA | Get the nearest traffic cameras to a geographic point. Nearest-neighbor search. Use when the user asks for the closest camera(s) to a location. Parameters: lat, lon: Query point (WGS84) limit: Number of cameras (1–100, default 5) active_only: If true, only camera_class=open Returns: JSON with type nearest_search and cameras[] ordered by distance_meters. |
| get_camera_imageA | Get the live frame for a camera by asset_id, embedded directly in the tool result. api.vancam.ai requires an x-api-key header this server holds — an MCP client fetching the bare URL itself (e.g. Claude Desktop opening the link) has no way to attach that header and gets 403 Forbidden. This tool fetches the frame server-side instead and returns the image bytes. Parameters: asset_id: Vancam camera asset ID (integer as string) Returns: The live image, plus asset_id/url metadata for reference. |
| describe_camera_apiA | Describe the spatial camera API exposed by this MCP server. Call this first when unsure which search tool to use. Documents the same capabilities as the VanCam map web app (bounds pan, radius, route, nearest). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool targets a distinct spatial query mode (bounds, radius, route, nearest) plus image retrieval and API documentation. There is no overlap; an agent can easily select the right tool based on the user's query.
All tool names follow a consistent verb_noun pattern in snake_case, with 'camera(s)' as the object. The verbs list, get, and describe are all clear and predictable, making the naming internally consistent.
Six tools is an appropriate size for a camera discovery and retrieval server. Each spatial query type is represented, plus image fetching and a meta-documentation tool, with no unnecessary bloat.
The tool set covers all spatial search modes from the VanCam web app (bounding box, radius, route corridor, nearest neighbor) and includes live image retrieval that works around the API key limitation. There are no obvious gaps for the stated purpose.