UVC PTZ Camera MCP server
io.github.AbhijatSaxena/uvc-ptz-camera-mcp·v0.2.0Control a USB (UVC) pan/tilt/zoom camera, with every move confirmed from the picture.
0 stars404 downloads/wk
Reviews
Write oneNobody has reviewed UVC PTZ Camera yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
UVC PTZ Camera tools (17, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
aimPoint one axis at an absolute value, and return what the picture confirms.
aim_learnRemember the current direction under a name, for later use.
aim_listList the directions recorded for this camera, and its calibrated default pose.
camera_statusReport the camera, its axes and ranges, and whether it is a real device.
check_viewCompare the current picture with one stored by `mark_view`.
go_toPoint the camera at a direction recorded earlier with `aim_learn`.
lookCapture one frame of what the camera currently sees, as a PNG image.
mark_viewStore the current picture under a label, so it can be compared later.
nudgeMove one axis relative to where the device says it is now.
plan_shotCompile a shot and report what it would do, without moving the camera.
recentreReturn every axis to the camera's own default: centre, level, unzoomed.
run_shotwrite actionExecute a multi-step camera move, verifying after every waypoint.
sweepMove an axis smoothly to a value over a chosen duration.
track_startStart following a subject, closing the loop on the picture.
track_statusReport what the follow loop is doing, with the evidence for each iteration.
track_stopStop following, and return the summary: what it saw, what it moved, what failed.
zoomSet optical zoom as a multiplier: 1.0 is wide, up to the camera's maximum.
Public scan report
scanner v0.1.10 · 2026-10-13 · same rubric, same numbers if you re-run it
- Code scan13 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 6 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How UVC PTZ Camera compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 48,255 servers
- Tools
- 17
- the typical server has 7
- Tools that change things
- 6%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 404
- more than 85% of 12,191 servers with a package
What its tools let an agent do: 15 read · 1 change · 1 run or deploy
Install UVC PTZ Camera in Claude Code, Cursor or VS Code
claude mcp add uvc-ptz-camera-mcp -- uvx uvc-ptz-camera-mcp
What the publisher says
From the UVC PTZ Camera repository's README, as published. We do not edit it. Read it on GitHub
uvc-ptz-camera-mcp
<!-- mcp-name: io.github.AbhijatSaxena/uvc-ptz-camera-mcp -->
An MCP server for USB (UVC) pan/tilt/zoom cameras: aim them, nudge them, sweep them smoothly, zoom, and look through them — with every move confirmed by comparing the picture before and after.
No account, no cloud, no vendor SDK. One device, one USB cable.
camera_status the camera, its axes and ranges, and whether it is real
aim point an axis at an absolute value, confirmed from the picture
nudge move relative to where the device says it is
sweep a smooth timed move, streamed at 15 Hz
zoom set zoom as a multiplier (1x .. the camera's maximum)
recentre every axis back to its default
look one frame, returned as an image
aim_learn remember "this direction is the desk"
aim_list what has been recorded for this camera
go_to point at a recorded direction
plan_shot compile a multi-step shot and report what it would do, moving nothing
run_shot execute a multi-step move, verified after every waypoint
mark_view store the current picture under a label
check_view has the picture changed since that label?
track_start follow a subject: detect, measure, take a step, look again
track_status what the follow loop is doing, iteration by iteration
track_stop stop following and report what it saw and what it movedComposing a shot is planshot then runshot. Planning compiles exactly the steps the executor will compile, reports the per-step schedule, how far each axis travels and how long it takes, and touches nothing — so an agent can iterate on "a panorama, then zoom in on me" against the camera's real ranges before anything moves, instead of finding out afterwards.
Following
trackstart runs a loop that keeps the camera pointed at a subject: detect it, measure how far it is from the centre of the frame, take a bounded step, look again. It decides only from the picture, for the same reason every other move here does — this camera's own report of where it is pointing cannot be trusted. It stops on its own when the subject is lost, when it settles inside the dead zone, when the camera stops answering, or after maxseconds, and track_status lists every iteration with the offset it measured and the step it applied.
Two quantities are mount-dependent rather than device-dependent, so they are explicit parameters instead of clever guesses: gain, degrees of movement per pixel of offset, and invert, which flips the direction. A wrong choice shows up honestly as a residual error that grows, and a single iteration is capped at 25 degrees, so a wrong gain converges slowly rather than throwing the camera across its whole range in one command.
Detection uses OpenCV's bundled face cascade (pip install 'uvc-ptz-camera-mcp[tracking]'), which needs no model download, no account and no network at first use. It finds faces: this follows a person, not a car or a dog. The loop and its arithmetic are tested against the simulator, but no part of follow mode has ever run against real hardware — treat it as the least proven thing here.
Why this exists
This class of camera reports positions it never moved to. Measured on the reference device (a DJI Osmo Pocket 4P in webcam mode, over its standard UVC controls):
at all;
- a command to pan to 180 read back 180 while the video proved the camera had not moved
- a whole 32-second run read back 0 on every sample while the frame demonstrably changed;
- pan 120 read back 119, pan 200 read back 199.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
UVC PTZ Camera: common questions
- Is UVC PTZ Camera MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the UVC PTZ Camera safety report
- How do I install UVC PTZ Camera?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does UVC PTZ Camera need an API key?
- No secret keys are declared. It reads 2 settings from the environment.
- Is UVC PTZ Camera maintained?
- The last commit was 27 days ago (2026-10-08). The latest release is v0.2.0.
- How does UVC PTZ Camera compare with other MCP servers?
- safety score 92/100 (higher than 95% of 48,255 servers); tools 17 (the typical server has 7); tools that change things 6% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.