{"name":"io.github.AbhijatSaxena/uvc-ptz-camera-mcp","slug":"abhijatsaxena-uvc-ptz-camera-mcp","title":"UVC PTZ Camera","description":"Control a USB (UVC) pan/tilt/zoom camera, with every move confirmed from the picture.","url":"https://mcp.market/server/abhijatsaxena-uvc-ptz-camera-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":31,"stars":0,"forks":0,"downloads_week":404,"last_push_at":"2026-10-08T09:09:19.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/AbhijatSaxena/uvc-ptz-camera-mcp","website":"https://github.com/AbhijatSaxena/uvc-ptz-camera-mcp","version":"0.2.0","remotes":[],"packages":[{"registryType":"pypi","identifier":"uvc-ptz-camera-mcp","version":"0.2.0","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Where to store what has been learned about each camera. Defaults to ~/.uvc-ptz-camera-mcp. Holds angles, never credentials.","name":"UVC_PTZ_STATE_DIR"},{"description":"Path to an image to use as the simulator's panorama instead of the synthesised one.","name":"UVC_PTZ_SIM_SOURCE"}]}],"tools":[{"name":"aim","description":"Point one axis at an absolute value, and return what the picture confirms.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aim_learn","description":"Remember the current direction under a name, for later use.","write_action":false,"price_micros":0,"input_schema":null},{"name":"aim_list","description":"List the directions recorded for this camera, and its calibrated default pose.","write_action":false,"price_micros":0,"input_schema":null},{"name":"camera_status","description":"Report the camera, its axes and ranges, and whether it is a real device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_view","description":"Compare the current picture with one stored by `mark_view`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"go_to","description":"Point the camera at a direction recorded earlier with `aim_learn`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"look","description":"Capture one frame of what the camera currently sees, as a PNG image.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mark_view","description":"Store the current picture under a label, so it can be compared later.","write_action":false,"price_micros":0,"input_schema":null},{"name":"nudge","description":"Move one axis relative to where the device says it is now.","write_action":false,"price_micros":0,"input_schema":null},{"name":"plan_shot","description":"Compile a shot and report what it would do, without moving the camera.","write_action":false,"price_micros":0,"input_schema":null},{"name":"recentre","description":"Return every axis to the camera's own default: centre, level, unzoomed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_shot","description":"Execute a multi-step camera move, verifying after every waypoint.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sweep","description":"Move an axis smoothly to a value over a chosen duration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"track_start","description":"Start following a subject, closing the loop on the picture.","write_action":false,"price_micros":0,"input_schema":null},{"name":"track_status","description":"Report what the follow loop is doing, with the evidence for each iteration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"track_stop","description":"Stop following, and return the summary: what it saw, what it moved, what failed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"zoom","description":"Set optical zoom as a multiplier: 1.0 is wide, up to the camera's maximum.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-10-13T23:16:53.233Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-13T23:16:53.252Z","components":{"code":{"score":25,"max":25,"notes":["13 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 6 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"uvc-ptz-camera-mcp","version":"0.2.0","found":true,"weeklyDownloads":404,"license":"MIT","dependencyCount":5,"publishedAt":"2026-10-07T22:24:44.129872Z","repositoryUrl":"https://github.com/AbhijatSaxena/uvc-ptz-camera-mcp"}],"repo":{"found":true,"owner":"AbhijatSaxena","repo":"uvc-ptz-camera-mcp","archived":false,"pushedAt":"2026-10-08T09:09:19Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/4438308?v=4","ownerCreatedAt":"2013-05-15T14:01:48Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/4438308?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":404,"license":"MIT","lastPushAt":"2026-10-08T09:09:19.000Z","score":31}}}},"grade_history":[],"reviews":[]}