Skip to main content
Glama

IvedaAI: Camera

ivedaai_camera
Destructive

Manage cameras via IvedaAI API: search, create, update, delete, configure cameras, operate jobs, retrieve RVA heatmaps, reset status, and get engine recommendations.

Instructions

IvedaAI API — Camera operations. Response JSON: "status" is the HTTP status code; "truncated"/"timedOut" flag a cut-off response.

GET /api/cameras — Find cameras query: offset?:integer, page?:any, pageNumber?:integer, pageSize?:integer, paged?:boolean, size?:any, sort?:any, sort.sorted?:boolean, sort.unsorted?:boolean, unpaged?:boolean, ainvrId?:integer, name?:string, nameContains?:string, cameraTypes?:string enum:App|External|Footage|General|Onvif|RecordedAnalytic|VideoSource, isLocal?:boolean, latitude?:number, longitude?:number, isActivate?:boolean, plugins?:string, pluginsAll?:string, floorPlanId?:string, cameraIds?:integer, cameraGroupIds?:string, groupNameContains?:string, fetchCameraGroups?:boolean

POST /api/cameras — Create camera query: ainvrId?:integer body: CameraRequest — required: cameraType; ivedaai_get_schema for all fields

DELETE /api/cameras/{cameraId} — Delete camera by id path: cameraId*:integer

GET /api/cameras/{cameraId} — Find camera by id path: cameraId*:integer

PATCH /api/cameras/{cameraId} — Patch cameara path: cameraId*:integer body: CameraRequest — required: cameraType; ivedaai_get_schema for all fields NOTE: GET /api/cameras/{cameraId} returns this field under a different key — nvrId → nvr.nvrId. This endpoint has been confirmed to leave omitted fields alone, so this is for reading the value, not a warning about losing it. NOTE: "doRecording", "engineConfig" have no known equivalent in GET /api/cameras/{cameraId}, so they cannot be read back — but this endpoint keeps omitted fields, so they survive an update that leaves them out.

PUT /api/cameras/{cameraId} — Update cameara path: cameraId*:integer body: CameraRequest — required: cameraType; ivedaai_get_schema for all fields NOTE: GET /api/cameras/{cameraId} returns this field under a different key — nvrId → nvr.nvrId. This endpoint refuses partial bodies outright, so the full object is required regardless. NOTE: "doRecording", "engineConfig" have no known equivalent in GET /api/cameras/{cameraId}, so they cannot be read back — but this endpoint refuses partial bodies, so an update omitting them fails rather than resetting anything.

POST /api/cameras/{cameraId}/jobs — Operate jobs by camera id path: cameraId*:integer query: activate*:boolean

GET /api/cameras/{cameraId}/rva-heatmap — Get RVA heatmap path: cameraId*:integer query: from?:string, to?:string

PUT /api/cameras/{cameraId}/status — Reset camera status path: cameraId*:integer query: resetHour?:integer

POST /api/cameras/pseudo — Create pseudo camera body: PseudoCameraRequest — required: name; ivedaai_get_schema for all fields

GET /api/cameras/recommend-engines — Get recommend engine for camera query: cameraIds*:integer, allCameras?:boolean, excludeEngines?:string enum:AgeGenderClassifier|CrossCameraTrackingEngine|CrowdDetectionEngine|DwellEngine|ExtraAlertTrigger|FaceGdpr|FaceRecognitionEngine|HumanAttributeEngine

POST /api/cameras/recommend-engines — Apply recommend engine to camera body: array of CameraAutoConfiguration — required: cameraId, recommendEngines; ivedaai_get_schema for all fields

GET /api/cameras/uri-schemes — List schemes for camera url connection

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON request body, or form field values when uploading a file.
fileNoLocal file to upload, for operations that accept a file.
pathNoPath parameters, e.g. { "cameraId": 12 }
queryNoQuery string parameters for this operation.
operationYesWhich API operation to call, from the list in this tool's description.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond annotations by documenting nuanced mutation behaviors: PATCH 'leaves omitted fields alone' while PUT 'refuses partial bodies outright', the nvrId → nvr.nvrId key mapping, and that 'doRecording'/'engineConfig' cannot be read back. It also explains the response JSON's 'status' field and truncation flags, giving agents critical operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with endpoint headings and consistent query/body/path formatting. It front-loads the response JSON caveat, which is useful. While every sentence carries information, the sheer number of endpoints makes it verbose, though this is justified by the tool's multi-operation surface.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 endpoints) and lack of output schema, the description is exceptionally complete. It documents all parameters, required fields, enums, special behaviors, and read-back limitations. The absence of an output schema is mitigated by the response status explanation, leaving no critical gaps for an agent to operate correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is generic (body/path/query/operation), but the description lists all query parameters with types and enums for each endpoint (e.g., cameraTypes, excludeEngines), required body fields (cameraType, name, cameraId), and path parameters. This fully compensates for the schema's lack of operation-specific detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as 'IvedaAI API — Camera operations' and enumerates all camera-related endpoints (CRUD, jobs, heatmap, status, pseudo, recommend-engines, uri-schemes). This specific scope distinguishes it from sibling tools like ivedaai_camera_group and ivedaai_camera_state, which handle different camera-adjacent concerns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for camera operations via the endpoint list, but provides no explicit guidance on when to choose this tool over siblings (e.g., ivedaai_camera_group, ivedaai_add_camera). There are no stated when-not scenarios or alternative tool references, so it relies on inferred context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WillORepO/ivedaAI-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server